Programmieren mit Swift - Für macOS und iOS
Programmieren mit Swift - Für macOS und iOS
Arrays aus Dictionaries

Werden in einem Programm oft mehrere Auflistungen benötigt, kann es gelegentlich sinnvoll sein, Arrays in einem Dictionary zu hinterlegen. Über den Schlüssel eines Wertepaares kann anschließend eine Liste ausgewählt werden. Das folgende Listing liefert das erste Element aus der Liste cities und das letzte Element aus dem Array colors. Durch das Ausrufezeichen wir das Forced Unwarpping auf die Swift-Optionals angewendet. Gäbe es die gewählten Schlüssel im Dictionary nicht, oder hatten die Array keine Elemente, käme es zu einem Fehler.
var cities = ["Berlin", "London", "Rom", "Paris"]
var colors = ["Rot", "Gelb", "Grün", "Blau"]

var mainDict = ["cities": cities, "colors": colors]

var firstCity = mainDict["cities"]!.first!
var lastColor = mainDict["colors"]!.last!
Die Type Inference von Swift macht die Programmierung im gezeigten Beispiel einfach. Möchte man das Dictionary zunächst ohne Werte anlegen, muss man den Typen angeben. Der Schlüssel eines Wertepaares ist ein String, der Wert ein Array aus Strings. Das sähe dann so aus:
var mainDict = [String: [String]]()

mainDict["cities"] = cities
mainDict["colors"] = colors

var firstCity = mainDict["cities"]!.first!
var lastColor = mainDict["colors"]!.last!
>
Eine umgekehrte Verschachtelung ist ebenfalls möglich. Die Elemente in einem Array können Dictionaries sein.
var cities = ["B":"Berlin", "L":"London", "P":"Paris"]
var colors = ["R":"Rot", "G":"Gelb", "B":"Blau"]

var mainArray = [[String:String]]()
mainArray.append(cities)
mainArray.append(colors)

var berlinCity = mainArray.first!["B"]!
var blueColor = mainArray.last!["B"]!
Unabhängig davon, wie Array und Dictionary verschachtelt werden, sind sie typensicher. Im letzten Beispiel ist der Typ für die Element im Array nicht einfach nur ein Dictionay, sondern ein Dictionay mit einem Typ String für Schlüssel und Wert. Anders aufgebaute Dictionaries können dem Array nicht hinzugefügt werden.