【问题标题】:Dictionary count with in NSDictionaryNSDictionary 中的字典计数
【发布时间】:2017-06-09 18:40:08
【问题描述】:
我正在 NSDictionary 下提取一个字典,其中包含子字典。我必须在表格视图中显示所有这些。项目数、字典完全随机......
{
Key = Value;
Key = Value;
Key = Value;
“{Dictionary 1}” = {
Key = Value;
Key = Value;
Key = Value;
};
"{Dictionary 2}” = {
Key = Value;
Key = Value;
};
Key = Value;
Key = Value;
“{Dictionary 3}” = {
Key = Value;
Key = Value;
Key = Value;
Key = Value;
};
Key = Value;
}
如何从这个主 NSDictionary 中获取子词典的数量?
【问题讨论】:
标签:
ios
swift
dictionary
count
nsdictionary
【解决方案1】:
您可以尝试将值转换为字典,如果可行,则为字典的数量增加计数器。
例如:
let upperDict = ["key":1,
"key2":2,
"key3":3,
"dict1": ["key1":"1", "key2":32],
"dict2": ["key1" :1]] as NSDictionary
var innnerDictionariesCount = 0
for (key, value) in upperDict {
if value as? [String:Any] != nil {
innnerDictionariesCount += 1
}
}
【解决方案2】:
如果你想在一个部分中显示所有内容,我认为你需要知道主字典中有多少个值,而不是有多少子字典。
let mainDic: NSDictionary = ["value1": "value1",
"value2": "value2",
"subDic1": ["value1": "value1", "value2": "value2"],
"subDic2": ["value1": "value1", "value2": "value2"]
]
var counter = 0
for (key, value) in mainDic {
if value is String {
counter += 1
}
else if value is Dictionary<String, Any> {
let subDic = value as! Dictionary<String, Any>
counter += subDic.count
}
else if value is Array<Any> {
let subArray = value as! Array<Any>
counter += subArray.count
}
}
print(counter) // output is 6