Ich habe einige Schwierigkeiten beim Zugriff auf veränderbare Wörterbuchschlüssel und -werte in Objective-C.
Angenommen, ich habe Folgendes:
NSMutableDictionary *xyz=[[NSMutableDictionary alloc] init];
Ich kann Schlüssel und Werte einstellen. Jetzt möchte ich nur auf jeden Schlüssel und Wert zugreifen, aber ich kenne die Anzahl der eingestellten Schlüssel nicht.
In PHP ist es sehr einfach, etwas wie folgt:
foreach ($xyz as $key => $value)
Wie ist es in Objective-C möglich?
quelle
for (NSString* key in [xyz allKeys])
ist konzeptionell das gleiche.Nur um die Option 10.6+ zum Aufzählen von Schlüsseln und Werten mithilfe von Blöcken nicht auszulassen ...
Wenn Sie möchten, dass die Aktionen gleichzeitig ausgeführt werden:
quelle
*stop
? Wie nutzt du es? Irgendeine Referenz?Wenn Sie das Wörterbuch während der Aufzählung mutieren müssen :
quelle
allKeys
eine Kopie der Schlüssel zurückgegeben wird. Es ist also sicher, das Wörterbuch zu mutieren.Der einfachste Weg, ein Wörterbuch aufzulisten, ist
wo
tDictionary
ist dasNSDictionary
oderNSMutableDictionary
du willst iterieren.quelle
Ich empfehle Ihnen, den Teil Aufzählung: Durchlaufen der Elemente einer Sammlung im Programmierhandbuch für Sammlungen für Kakao zu lesen . Es gibt einen Beispielcode für Ihren Bedarf.
quelle
In 10.5 und im iPhone OS wurde eine schnelle Aufzählung hinzugefügt, die nicht nur syntaktischen Zucker, sondern auch erheblich schneller ist. Wenn Sie auf die ältere Laufzeit (z. B. 10.4 und zurück) abzielen müssen, müssen Sie die alte Aufzählungsmethode verwenden:
Sie geben das Enumerator-Objekt nicht frei und können es nicht zurücksetzen. Wenn Sie von vorne beginnen möchten, müssen Sie ein neues Enumerator-Objekt aus dem Wörterbuch anfordern.
quelle
Sie können
-[NSDictionary allKeys]
damit auf alle Schlüssel zugreifen und diese durchlaufen.quelle