Mam trudności w dostępie do zmiennych kluczy i wartości słownika w Objective-C.
Załóżmy, że mam to:
NSMutableDictionary *xyz=[[NSMutableDictionary alloc] init];
Mogę ustawić klucze i wartości. Teraz chcę tylko uzyskać dostęp do każdego klucza i wartości, ale nie znam liczby ustawionych kluczy.
W PHP jest to bardzo proste, coś takiego:
foreach ($xyz as $key => $value)
Jak to możliwe w Objective-C?
objective-c
nsdictionary
enumeration
nsmutabledictionary
key-value
Sagar R. Kothari
źródło
źródło
for (NSString* key in [xyz allKeys])
jest koncepcyjnie tym samym.Aby nie pominąć opcji 10.6+ do wyliczania kluczy i wartości za pomocą bloków ...
Jeśli chcesz, aby działania były wykonywane jednocześnie:
źródło
*stop
? Jak z tego korzystasz? Jakieś referencje?Jeśli musisz mutować słownik podczas wyliczania:
źródło
allKeys
zwrócenie kopii kluczy. Dlatego mutowanie słownika jest bezpieczne.Najłatwiejszym sposobem wyliczenia słownika jest
gdzie
tDictionary
jestNSDictionary
lubNSMutableDictionary
chcesz iterować.źródło
Sugeruję przeczytanie Wyliczenia: Przemierzanie elementów kolekcji, części Podręcznika programowania kolekcji dla kakao . Istnieje przykładowy kod dla twoich potrzeb.
źródło
Szybkie wyliczanie zostało dodane w wersji 10.5 i iPhone OS i jest znacznie szybsze, nie tylko cukier syntaktyczny. Jeśli musisz celować w starsze środowisko wykonawcze (tj. 10.4 i wstecz), musisz użyć starej metody wyliczania:
Nie zwalniasz obiektu wyliczającego i nie możesz go zresetować. Jeśli chcesz zacząć od nowa, musisz poprosić o nowy obiekt modułu wyliczającego ze słownika.
źródło
Możesz użyć,
-[NSDictionary allKeys]
aby uzyskać dostęp do wszystkich kluczy i przejść przez nie.źródło