数组计数错误迅速

时间:2014-10-12 20:41:58

标签: ios arrays swift

我搜索的时间很长,但无法找到我的错误解决方案。 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}]}

1 个答案:

答案 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键不在字典中,或者它的值不能强制转换为数组,然后抛出运行时异常。