繁体   English   中英

将 Xcode 更新到 7.0 后出错

[英]error after updating the Xcode to 7.0

我正在用 Swift 开发一个 iOS 应用程序。 当我将 Xcode 更新到 7.0 时,swiftyJSON 出现错误。

 static func fromObject(object: AnyObject) -> JSONValue? {
    switch object {
    case let value as NSString:
        return JSONValue.JSONString(value as String)
    case let value as NSNumber:
        return JSONValue.JSONNumber(value)
    case let value as NSNull:
        return JSONValue.JSONNull
    case let value as NSDictionary:
        var jsonObject: [String:JSONValue] = [:]
        for (k:AnyObject, v:AnyObject) in value {// **THIS LINE- error: "Definition conflicts with previous value"**
            if let k = k as? NSString {
                if let v = JSONValue.fromObject(v) {
                    jsonObject[k] = v
                } else {
                    return nil
                }
            }
        }

有什么问题? 你能帮忙吗?

 for (k:AnyObject, v:AnyObject) in value { .. }

必须用 Swift 2 编写为

for (k, v) : (AnyObject, AnyObject) in value { .. }

来自 Xcode 7 发行说明:

模式中不再允许类型注释,并且被视为外围声明的一部分。 这意味着之前编写的代码如下:

 var (a : Int, b : Float) = foo()

需要写成:

 var (a,b) : (Int, Float) = foo()

如果需要显式类型注释。 前一种语法与元组元素标签不明确。

但是在您的情况下,实际上根本不需要显式注释:

for (k, v) in value { .. }

因为NSDictionary.Generator已经被定义为一个返回(key: AnyObject, value: AnyObject)元素的生成器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM