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

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

Wie kann ich die Werte "Deutschland" und "Deutschland" in ein neues Array extrahieren? Ergebnis sollte sein:Werte des Wörterbuchs extrahieren

["germany", "Deutschland"] 
+0

Übersetzungen ist Array ?? –

+0

Übersetzungen ist ein Diktat aus Schlüssel String und Wert String? wie Sie in der Struktur sehen können. – Jan

+0

Warum sind die Wörterbuchwerte optional? Das ist unsinnig. Per Definition bedeutet ein "Null" -Wert, dass * der Schlüssel fehlt * – vadian

Antwort

1

Erstens eine Sammlung aller Werte von Übersetzungen erhalten, dann wandeln sie in ein Array.

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

oder

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

Seien Sie vorsichtig "Sammlung" in Ihrem Beispiel ist auch ein DICT mit optionalen Werten – Jan

Verwandte Themen