我刚刚更新到Xcode 8.0 / Swift 3,并且收到此消息
对成员“下标”的模棱两可的引用
在这条线上:
让rootResults = rootDictionary [“ results”]为?[[NSObject:AnyObject]]
其余代码如下所示:
func parseJSON(data: NSData) {
do {
let json = try JSONSerialization.jsonObject(with: data as Data, options: .mutableContainers)
if let rootDictionary = json as? [NSObject: AnyObject],
let rootResults = rootDictionary["results"] as? [[NSObject: AnyObject]]
{
for childResults in rootResults {
if let firstName = childResults["first_name"]! as? String {
let customerFirstName = firstName
customerData["firstName"] = customerFirstName
}
if let lastName = childResults["middle_name"]! as? String {
let customerLastName = lastName
customerData["middleName"] = customerLastName
}
if let lastName = childResults["last_name"]! as? String {
let customerLastName = lastName
customerData["lastName"] = customerLastName
}
if let nameSuffix = childResults["name_suffix"]! as? String {
let customerSuffix = nameSuffix
customerData["nameSuffix"] = customerSuffix
}
}
}
} catch {
print(error)
}
}
我看过其他与此类似的问题,但它们与json解析无关。我将不胜感激。谢谢!
在Swift 3中,大多数隐式类型转换都将被删除。这使得String文字无法自动转换为NSObject
。
尝试将[NSObject: AnyObject]
您的代码替换为[String: AnyObject]
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句