Jak przechodzić przez wszystkie obiekty w NSMutableDictionary niezależnie od kluczy?
objective-c
ios
nsmutabledictionary
Rupert
źródło
źródło
for (id key, value in myDict)
to byłoby idealne.id key in myDict.allKeys
) Zamiast słownika. Pozwala to na zmianę słownika, co może być tym, co chcesz zrobić.możesz użyć
[myDict enumerateKeysAndObjectsUsingBlock: ^(id key, id obj, BOOL *stop) { // do something with key and obj }];
jeśli twój docelowy system operacyjny obsługuje bloki.
źródło
Możesz użyć,
[dict allValues]
aby uzyskać jednąNSArray
ze swoich wartości. Pamiętaj, że nie gwarantuje to żadnego porządku między połączeniami.źródło
w szybkim wyliczeniu
for(id key in myDictionary) { id value = [myDictionary objectForKey:key]; // do something with key and obj }
w blokach:
[myDictionary enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) { // do something with key and obj }];
źródło
Nie musisz przypisywać wartości do zmiennej. Możesz uzyskać do niego bezpośredni dostęp za pomocą
myDict[key]
.for(id key in myDict) { NSLog(@"Key:%@ Value:%@", key, myDict[key]); }
źródło
Innym sposobem jest użycie Dicts Enumerator. Oto przykładowy kod firmy Apple:
NSEnumerator *enumerator = [myDictionary objectEnumerator]; id value; while ((value = [enumerator nextObject])) { /* code that acts on the dictionary’s values */ }
źródło