gpt4 book ai didi

ios - 歧义使用下标 xcode 7.1

转载 作者:搜寻专家 更新时间:2023-10-30 22:22:19 24 4
gpt4 key购买 nike

我有这个代码:

var jsonResult = (try! NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers)) as! NSDictionary
var count = jsonResult["levels"]!.count as Int
for var i=0; i<count; ++i {
let obj = jsonResult["levels"]![i] as! NSDictionary
...
}

在最后一行我收到这个错误:

Ambiguous use of subscript

我该如何解决?

此代码已经工作了一段时间,但随着升级到 xcode 7.1,它崩溃并停止工作。

最佳答案

你必须告诉编译器行中的中间对象是什么

let obj = jsonResult["levels"]![i] as! NSDictionary

在语句jsonResult["levels"]! 之后,编译器并不知道他在处理什么样的对象。您必须告诉它这是一个 NSArray 或其他东西:

let obj = (jsonResult["levels"] as! NSArray)[i] as! NSDictionary

当然,您还应该确保您确实可以进行所有转换,并且 json 中的对象确实是预期的类型。


通过直接转换为 NSDictionary 数组,仅使用一次转换甚至更短:

let obj = (jsonResult["levels"] as! [NSDictionary])[i]

推理保持不变:您告诉编译器什么类型 jsonResult["levels"]。它应该是一个包含 NSDictionary 的数组。

关于ios - 歧义使用下标 xcode 7.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33592699/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com