我的项目之前运行良好,但如果使用模拟器,则仍可以正常运行。但是,当我连接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/

10-11 17:16