This question already has answers here:
If Let Error - Initializer for conditional binding must have Optional type, not '[NSObject : AnyObject]'
(2个答案)
4年前关闭。
我想跳过使用Xcode 7.3.1并转换我的代码,但是我在这里面临某种问题,这就是我以前在Swift 1.1中使用它的方式,但是我遇到了错误-条件绑定的初始化器必须具有可选类型,不是“[NSObject:AnyObject]” SwiftyJSON:
提前致谢!
您的其余代码应该没问题。您还需要删除该括号的
(2个答案)
4年前关闭。
我想跳过使用Xcode 7.3.1并转换我的代码,但是我在这里面临某种问题,这就是我以前在Swift 1.1中使用它的方式,但是我遇到了错误-条件绑定的初始化器必须具有可选类型,不是“[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))
}
}
提前致谢!
最佳答案
条件绑定(如果允许)期望一个表达式,其结果可以为nil。该错误意味着error.userInfo永远不会为零。
您只需要删除第一行中的if,就像这样:
let userInfo = error.userInfo
您的其余代码应该没问题。您还需要删除该括号的
}
。关于ios - 条件绑定(bind)的初始化程序必须具有可选类型,而不是'[NSObject:AnyObject]'SwiftyJSON [duplicate],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38282080/
10-10 22:25