Programmieren mit Swift - Für macOS und iOS
Programmieren mit Swift - Für macOS und iOS
NSDictonary

Wie ein Array ist auch ein Dictionary eine Auflistung von Werten, die gemeinsam verwaltet werden, aber damit hören die Gemeinsamkeiten auch schon auf. Ein Dictionary unterscheidet sich sehr von einem Array, denn bei ihm werden die Objekte nicht über ihre Position, sondern über einen eindeutigen Namen in der Auflistung angesprochen.

Ein Dictionary-Eintrag besteht immer aus einem Wertepaar, dessen ElementeKey und Value genannt werden. Obwohl beide Werte Objekte beliebigen Typs akzeptieren, ist der Key in vielen Fällen ein NSString, da die Bezeichnung des Schlüssels mit einer Zeichenkette den Code übersichtlich aber doch eindeutig hält.

Die Klasse NSDictionary hat die gleichen Einschränkungen wie ihr ferner Verwandter NSArray. Alle Daten müssen schon bei der Initialisierung übergeben werden und müssen Objekte sein. Das folgende Beispiel zeigt ein NSDictionary mit Objekten vom Typ NSNumber, die über einen Key vom Typ NSString angesprochen werden. So entsteht eine direkte Verbindung zwischen den Zahlenwerten und den in den Zeichenkette hinterlegten Monaten.
NSNumber *n1 = [NSNumber numberWithInt:1203];
NSNumber *n2 = [NSNumber numberWithInt:
3048];
NSNumber *n3 = [NSNumber numberWithInt:
7645];
NSNumber *n4 = [NSNumber numberWithInt:
4435];
NSNumber *n5 = [NSNumber numberWithInt:
9298];
NSNumber *n6 = [NSNumber numberWithInt:
7413];

NSDictionary *account;
umsatz = [NSDictionary dictionaryWithObjectsAndKeys:
n1,
@"Jan",n2,@"Feb",n3,@"Mrz",n4,@"Apr",n5,@"Mai",n6,@"Jun",nil];

// Ausgabe
NSNumber *aNumber;

aNumber= [umsatz objectForKey:
@"Feb"];
NSLog(
@"%@",aNumber);

aNumber= [umsatz objectForKey:
@"Jun"];
NSLog(
@"%@",aNumber);
Diese Art der Organisation bringt einige Vorteile, denn durch den Aufruf über den Schlüssel ist es nicht nur besonders einfach ein Objekt zu finden, sondern auch besonders schnell. Diese Geschwindigkeit entsteht dabei durch die interne Verwaltung eines Dictionary und durch die Art, wie die Daten im Speicher abgelegt und verwaltet werden. Als Programmierer hat man damit aber wenig zu tun, da diese Vorgänge automatisch geschehen und man sich nicht darum kümmern muss. Je nach Situation kann der Zugriff auf ein Objekt in einem Dictionary bis zu 100 mal schneller als ein vergleichbarer Zugriff in einem Array sein.

nächste Seite