【问题标题】:How to resolve the error "ambiguous reference to member 'subscript'"如何解决错误“对成员'下标'的模糊引用”
【发布时间】:2016-10-14 04:40:54
【问题描述】:

我得到错误:

对成员“下标”的模糊引用

关于以下代码:

let jsonObject = try JSONSerialization.jsonObject(with: data, options: [])
guard   let jsonDictionary = jsonObject as? [NSObject: AnyObject], 
        let photos = jsonDictionary["photos"] as? [String: AnyObject], // this line is giving the error
        let photosArray = photos["photo"] as [[String: AnyObject]] else {
 print("Error")
}

以前的帖子建议我将类型从[String: AnyObject] 更改为[AnyObjectHashable: Any]。这并没有修复错误。有人可以解释为什么会发生此错误以及如何解决它吗?

【问题讨论】:

    标签: swift dictionary swift3


    【解决方案1】:

    你可以替换它,为了在 swift 3 中制作字典,你可以使用 [String: Any] 而不是 [String: AnyObject]

    let jsonObject = try JSONSerialization.jsonObject(with: data, options: [])
    guard   let jsonDictionary = jsonObject as? [String: Any],
        let photos = jsonDictionary["photos"] as? [String: AnyObject], // this line is giving the error
        let photosArray = photos["photo"] as? [[String: Any]] else {
            print("Error")
    }
    print(jsonDictionary)
    

    【讨论】:

    • 谢谢。我全部改成了 Any 和 AnyHashable。
    • @grabury 在您的问题中,您说您确实尝试过,但没有成功。是什么让它现在起作用了?
    • @HAS 错误出现在该特定行上,所以我只更改了该行。然后我将所有出现的事件都更改为 AnyHashable 和 Any
    • 从现在开始使用 Any 比使用 AnyObject 更好
    猜你喜欢
    • 2016-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多