ios - 条件绑定(bind)的初始化程序必须具有可选类型,而不是 '[NSObject: AnyObject]' SwiftyJSON

标签 ios swift swift2 swifty-json

<分区>

我想跳过去使用 Xcode 7.3.1 并转换我的代码,但我在这里遇到了某种问题,这就是我过去在 Swift 1.1 中使用它的方式,但我收到错误 -Initialiser for conditional绑定(bind)必须具有可选类型,而不是 '[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))
                }
            }

提前致谢!

最佳答案

条件绑定(bind)(if let)需要一个结果可以为 nil 的表达式。该错误意味着 error.userInfo 是 never nil。

你只需要删除第一行的if,像这样:

let userInfo = error.userInfo

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

关于ios - 条件绑定(bind)的初始化程序必须具有可选类型,而不是 '[NSObject: AnyObject]' SwiftyJSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38282080/

相关文章:

xcode - 在本地部署 Swift OS X 应用程序?

ios - 隐藏导航栏而不抬起 View

ios - 使用自动布局在某些单元格中加载图像

iphone - 使用飞行模式是否是一种可以接受的测试连接缺失的方法?

ios - 有没有简单的 API 创建方法?

javascript - IOS 中的无效日期 Ionic 3

SecItemCopyMatching 的 swift 2.0 钥匙串(keychain)类型错误

ios - 使用 swift 3 在 UINavigationController 中插入右键图像

xcode - 当用户在 webkit 中没有互联网连接时加载新 View

swift - Metal API 中的光类型