2016-03-08 37 views
1

我試圖訪問鍵下面的解釋:拿到鑰匙值在斯威夫特一個複雜的嵌套字典/陣列組合

let dictionaryToUSe = ["Starter":["mealName":"hamburger","price":"20.00"],"MainCourse":["mealName":"hotdog","price":"30.00"] ] 
let keysToUse = dictionaryToUSe.keys 
print(keysToUse) // returns "LazyMapCollection<Dictionary<String, Dictionary<String, String>>, String>(_base: ["Starter": ["price": "20.00", "mealName": "hamburger"]], _transform: (Function))\n" 

如何訪問「啓動器」串? 以及如何生成「dictionaryToUSe」字典的鍵列表?

回答

2

爲了得到字典鍵的列表,生成從LazyMapCollection的數組:

let keysToUse = Array(dictionaryToUSe.keys) 

結果:

[ 「起動」, 「MainCourse」]

但要訪問字典中的值,請使用經典的下標:

if let starter = dictionaryToUSe["Starter"] { 
    print(starter) // ["price": "20.00", "mealName": "hamburger"] 
    if let price = starter["price"] { 
     print(price) // "20.00" 
    } 
    // etc 
}