2012-11-15 6 views

Antwort

11

Dies ist das NSMutableDictionary. Sie können nach Beispielcodes suchen. Zum Beispiel: Create dict

NSMutableDictionary *dictionary = [NSMutableDictionary dictionary]; 
[dictionary setObject:@"object1" forKey:@"key1"]; 

alle Schlüssel Drucken und Werte einer Dict:

for (NSString* key in [dictionary allKeys]) { 
    NSLog(@"key: %@, value: %@", key, [dictionary objectForKey:key]); 
} 
+0

Können Sie mir ein einfaches Beispiel geben? – user1825965

+0

Zu der Antwort hinzugefügt. – Dave

+0

Ich möchte wissen, wie ich per Schleife abrufen kann? – user1825965

2

das genau ist, was ein NSDictionary/NSMutableDictionary tut:

NSMutableDictionary *myDictionary = [[ NSMutableDictionary alloc] init]; 
[ myDictionary setObject:@"John" forKey:@"name"]; 
[ myDictionary setObject:@"Developer" forKey:@"position"]; 
[ myDictionary setObject:@"1/1/1984" forKey:@"born"]; 

Der Unterschied ist, dass in die änderbare, können Sie Einträge nach dem Erstellen hinzufügen/ändern, aber nicht in der anderen.

4

Sie können eine NSDictionary oder NSmutabledictionary verwenden, um dies zu erreichen, müssen Sie nicht verwenden und NSArray. Hier ist ein Beispiel, wie es funktioniert.

NSMutableDictionary *dict = [[NSMutableDictionary alloc] init]; // Don't always need this 
    // Note you can't use setObject: forKey: if you are using NSDictionary 
    [dict setObject:@"Value1" forKey:@"Key1"]; 
    [dict setObject:@"Value2" forKey:@"Key2"]; 
    [dict setObject:@"Value3" forKey:@"Key3"]; 

Dann können Sie einfach einen Wert für einen Schlüssel abrufen.

NSString *valueStr = [dict objectForKey:@"Key2"]; 

Dies gibt den Wert von Value2 in der Zeichenfolge valueStr.

auf Objekte zu einem keine Mutable Wörterbuch hinzufügen NSDictionary nur

tun
NSDictionary *dict2 = [[NSDictionary alloc] initWithObjectsAndKeys:@"Value1", @"Key1", @"Value2", @"Key2", nil]; 

dann einfach als NSMutableDictionary die gleiche Art und Weise abrufen. Der Unterschied zwischen den beiden ist, dass ein Mutable Wörterbuch nach der Erstellung geändert werden kann, so können Objekte mit der setObject:forKey Objekte hinzufügen und Objekte mit der removeObjectFroKey: entfernen, während das keine veränderbare Wörterbuch nicht geändert werden kann, so dass es erstellt wurde, bis Sie es stecken Es wurde veröffentlicht, also keine Objekte hinzufügen oder entfernen.

Hoffe, das hilft.

+0

So holen Sie dieses Array nach Schleife, Schlüssel und Wert nach Schleife anzeigen. Abrufweise NSString * valueStr = [dict objectForKey: @ "Key2"]; Ich muss alle Schlüssel und Wert durch Schleife abrufen, ich muss Wert in Array suchen. – user1825965

+0

@ user1825965 Also was können Sie die Werte und Schlüssel in einer for-Schleife bekommen? – Popeye

0

Wenn Sie Objekt nicht mehr hinzufügen müssen, Ihnen eine nicht änderbare Wörterbuch erstellen:

NSDictionary* dict= @{ @"key1" : @"value1" , @"key2" : @"value2" }; 

Wenn Sie ein Array nicht Schlüsselwertepaare müssen, das ist:

NSArray* array= @[ @"value1" , @"value2", @"value3" ]; 
Verwandte Themen