【问题标题】:Initialiser for conditional binding must have Optional type, not '[NSObject: AnyObject]' SwiftyJSON [duplicate]条件绑定的初始化程序必须具有可选类型,而不是 '[NSObject: AnyObject]' SwiftyJSON [重复]
【发布时间】:2016-07-09 13:00:21
【问题描述】:

我想跳过去使用 Xcode 7.3.1 并转换我的代码,但我在这里遇到了一些问题,这就是我过去在 Swift 1.1 中使用它的方式,但我收到错误 - 条件初始化器binding 必须具有 Optional 类型,而不是 '[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))
                }
            }

提前致谢!

【问题讨论】:

  • error.userInfo 是非可选的。删除 if 和大括号
  • 感谢成功!!

标签: ios swift swift2 swifty-json


【解决方案1】:

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

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

let userInfo = error.userInfo

您的代码的其余部分应该没问题。您还需要删除结束括号} if 为好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-26
    • 2016-01-27
    • 2019-11-28
    • 2019-03-11
    • 2017-01-22
    • 2018-03-25
    • 2016-01-08
    • 2017-04-08
    相关资源
    最近更新 更多