2017-07-12 10 views
1
struct Country { 
    var translations : [String:String?]? // must be defined as optionals! 
} 

// example entry 
translationsDict = [ 
    "translations": [ 
     "de":"Deutschland", 
     "en": "germany", 
     "it": nil 
    ] 
] 

"Deutschland"と "germany"の値を新しい配列にどのように抽出できますか? 結果は次のようになります。辞書の値を抽出する

まず
["germany", "Deutschland"] 
+0

翻訳配列であります? –

+0

翻訳はキーストリングとバリューストリングで作成されたものですか?あなたが構造体で見ることができるように。 – Jan

+0

なぜディクショナリ値はオプションですか?それは無意味です。定義によって、 'nil'値は*キーが見つからないことを示します。 – vadian

答えて

1

翻訳のすべての値のコレクションを取得し、配列に変換します。

if let collection = translationsDict["translations"]?.values { 
    let array = Array(collection) 
    print(array) 
} 

又は

if let array = translationsDict["translations"]?.map({ $0.1 }) { 
    print(array) 
} 
+0

あなたの例では "collection"を注意してください。また、オプションの値を持つDICT – Jan

関連する問題