我搜索的时间很长,但无法找到我的错误解决方案。 Swift以某种方式不能正确计算我的数组(从json转换)。这是我用来创建数组的代码:
let jsonData = NSData(contentsOfURL: url)
let jsonDic = NSJSONSerialization.JSONObjectWithData(jsonData, options: NSJSONReadingOptions.MutableContainers, error: &error) as NSDictionary
var count = jsonDic.count
当计数应为3时,计数为2.所以我只是总是加1,但现在如果计数应该是4,则计数仍为2.
有没有人经历过这样的事情,或者只是我做错了什么?
编辑:这是一个示例输入:
{"items":[{"var1":"xxx","var2":"xxx","var3":"xxx","var4":"xxx","var5":0},{"var1":"xxx","var2":"xxx","var3":"xxx","var4":"xxx","var5":0}, {"var1":"xxx","var2":"xxx","var3":"xxx","var4":"xxx","var5":0}]}
答案 0 :(得分:3)
您发布的示例数据是一个包含一个items
键的字典,相应的值是一个数组(因此字典计数应为1)。
使用此代码:
let array = jsonDic["items"] as? NSArray
array?.count
我看到那个数组有3个元素。
如果您想要计算的是数组,那么我将使用上面的代码,或者使用可选绑定的代码:
if let array = jsonDic["items"] as? NSArray {
array.count
}
注意:我警告您使用jsonDic["items"]!.count
是因为它不安全:如果items
键不在字典中,或者它的值不能强制转换为数组,然后抛出运行时异常。