使用Array <dictionary <nsobject,anyobject =“”>&gt;对成员下标的不明确引用

时间:2017-01-26 16:52:41

标签: swift

我收到以下代码的“对成员下标的模糊引用”错误 -

let resultsDict = try JSONSerialization.jsonObject(with: data!, options: []) as! Dictionary<NSObject, AnyObject>

let items: Array<Dictionary<NSObject, AnyObject>> = resultsDict["items"] as! Array<Dictionary<NSObject, AnyObject>>

1 个答案:

答案 0 :(得分:1)

首先,我不会将NSObjectJSONSerialization一起使用,而是使用[AnyHashable: Any][String : Any]。其次,我建议您使用括号中的速记字典和数组语法。我还建议使用安全向下转换(as ?)与if let而不是强制向下转发(as!)以确保安全。

do {
    if let resultsDict = try JSONSerialization.jsonObject(with: data!, options: []) as? [String : Any] {

        let items = resultsDict["items"] as? [[String : Any]]
        // use items
    }
} catch {
    // handle error
}