Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 下标xcode 7.1使用不明确_Ios_Swift_Swift2 - Fatal编程技术网

Ios 下标xcode 7.1使用不明确

Ios 下标xcode 7.1使用不明确,ios,swift,swift2,Ios,Swift,Swift2,我有以下代码: 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["lev

我有以下代码:

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
   ...
}
var jsonResult=(试试!NSJSONSerialization.JSONObjectWithData(data!,选项:NSJSONReadingOptions.MutableContainers))as!字典
var count=jsonResult[“级别”]!。计为整数

对于var i=0;i您必须告诉编译器该行中的中间对象是什么

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”]
。在新的Swift更新中,它应该是一个包含
NSDictionary
s.

的数组。您应该使用
objectForKey(“yourKey”)
方法获取值,而不是
[“yourKey”]
。就你而言

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