条件绑定的Initialiser必须具有Optional类型,而不是'[NSObject:AnyObject]'SwiftyJSON

时间:2016-07-09 13:00:21

标签: ios swift swift2 swifty-json

我想跳过使用Xcode 7.3.1并转换我的代码,但是我在这里遇到了一些问题,这就是我以前在Swift 1.1中使用它的方法但是我收到了错误-Initialiser for conditional绑定必须具有可选类型,而不是'[NSObject:AnyObject]'SwiftyJSON:

  if let userInfo = error.userInfo { <-- Error in this line //Initialiser for conditional binding must have Optional type, not '[NSObject: AnyObject]'
                if let breadcrumb = userInfo["JSONErrorBreadCrumbKey"] as? NSString {
                    let newBreadCrumb = (breadcrumb as String) + "/\(index)"
                    let newUserInfo = [NSLocalizedDescriptionKey: "JSON Keypath Error: Incorrect Keypath \"\(newBreadCrumb)\"",
                        "JSONErrorBreadCrumbKey": newBreadCrumb]
                    return JSONValue.JInvalid(NSError(domain: "JSONErrorDomain", code: 1002, userInfo: newUserInfo))
                }
            }

提前致谢!

1 个答案:

答案 0 :(得分:2)

条件绑定(如果允许)需要一个结果可以为nil的表达式。该错误意味着error.userInfo 从不 nil。

你只需删除第一行中的if,如下所示:

let userInfo = error.userInfo

你的其余代码应该没问题。您还需要删除其中的右括号}