【问题标题】:error after updating the Xcode to 7.0将 Xcode 更新到 7.0 后出现错误
【发布时间】:2023-03-14 11:11:01
【问题描述】:

我正在用 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
                }
            }
        }

有什么问题?可以帮忙吗?

【问题讨论】:

    标签: ios swift ios9 swifty-json


    【解决方案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) 元素。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-23
      • 1970-01-01
      • 2015-12-19
      • 2023-03-04
      相关资源
      最近更新 更多