将 Xcode 更新到 7.0 后出现错误
Posted
技术标签:
【中文标题】将 Xcode 更新到 7.0 后出现错误【英文标题】:error after updating the Xcode to 7.0 【发布时间】:2015-09-19 19:20:28 【问题描述】:我正在用 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
有什么问题?可以帮忙吗?
【问题讨论】:
【参考方案1】: 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)
元素。
【讨论】:
以上是关于将 Xcode 更新到 7.0 后出现错误的主要内容,如果未能解决你的问题,请参考以下文章
将 Xcode 6 beta 6 更新到 beta 7 后出现“可选错误”