Cocoa lernen - Schritt für Schritt
Cocoa lernen - Schritt für Schritt
NSMutableDictionary

Es ist wahrscheinlich wenig überraschend, das es als Erweiterung der Klasse NSDictionary auch ein NSMutableDictionary gibt. Dieser Typ kann auch nach der Initialsierung um Wertpaare erweitert werden. Ebenfalls ist es möglich, Wertepaare zu entfernen oder auszutauschen.
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];

NSMutableDictionary *umsatz;
umsatz = [NSMutableDictionary dictionaryWithCapacity:
6];

[umsatz setObject:n1 forKey:
@"Jan"];
[umsatz setObject:n2 forKey:
@"Feb"];
[umsatz setObject:n3 forKey:
@"Mrz"];
[umsatz setObject:n4 forKey:
@"Apr"];
[umsatz setObject:n5 forKey:
@"Mai"];
[umsatz setObject:n6 forKey:
@"Jun"];

// Ausgabe

NSNumber *aNumber;
aNumber= [umsatz objectForKey:
@"Feb"];
NSLog(
@"%@",aNumber);
Wie schon beim NSMutableArray, ist die bei der Initialisierung angegebene Größe keine Grenze, sondern dient lediglich der Optimierung.

Um in einem NSMutableDictionary ein Objekt zu ersetzen, genügt es, in der setObject-Anweisung den Key eines schon vorhandenen Wertepaares zu benutzen. Das Objekt wird dann automatisch ersetzt.

Ebenfalls über den Key kann ein Objekt aus dem NSMutableDictionary entfernt werden.
[umsatz removeObjectForKey:@"Apr"];
Das funktioniert natürlich nur, wenn der angegebene Key auch vorhanden ist. Ist er das nicht, passiert nichts, eine Fehlermeldung wird nicht ausgeben