我的项目之前运行正常,如果使用模拟器仍然运行正常。但是,当我连接iPhone并尝试运行该项目时,我收到此错误:在此行上检索JSON信息时出现“不明确使用下标”:
let channels = jsonResult["channels"]?[0] as? [String: AnyObject]
任何帮助解决这个问题表示赞赏!
答案 0 :(得分:1)
编译器似乎更具有类型限制。
jsonResult["channels"]
的结果类型是AnyObject
,你必须通过检查作为数组的值来帮助编译器。
if let channels = jsonResult["channels"] as? [AnyObject], channel = channels[0] as? [String: AnyObject] {
// do something with channel
}
或者更安全的是检查数组是否为空
if let channels = jsonResult["channels"] as? [[String:AnyObject]] where !channels.isEmpty {
let channel = channels[0] // now the compiler knows it's [String:AnyObject]
// do something with channel
}