【问题标题】: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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多