2017-01-24 30 views
-3

我拉字典下NSDictionary具有子字典內。我必須在表格視圖中顯示所有這些。項目數量,字典是完全隨機的...字典計數與在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的子字典的計數?

+0

http://stackoverflow.com/help/mcve – vadian

回答

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 
    } 
} 
1

如果你想在一節中顯示的所有內容,我想你需要知道在主詞典中有多少值,而不是有多少子詞典。

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