将Xcode更新为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发行说明:
模式中不再允许使用类型注释,并将其视为exception声明的一部分。 这意味着以前编写的代码如下:
var (a : Int, b : Float) = foo()
需要写成:
var (a,b) : (Int, Float) = foo()
如果需要显式类型注释。 前一种语法与元组元素标签不明确。
但在您的情况下,实际上根本不需要显式注释:
for (k, v) in value { .. }
因为NSDictionary.Generator
已经被定义为返回的生成器(key: AnyObject, value: AnyObject)
元素。