我的项目之前运行良好,但如果使用模拟器,则仍可以正常运行。但是,当我连接iPhone并尝试运行项目时,在此行上检索JSON信息时,出现以下错误:“下标用法不正确”:
let channels = jsonResult["channels"]?[0] as? [String: AnyObject]
任何补救措施的帮助,不胜感激!
最佳答案
编译器似乎对类型的限制更大。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
}
关于ios - 新的Swift更新后出现“下标用法不正确”错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36238507/