2013-01-16 10 views
10

Nie rozumiem różnice między tymi sposobami dostępu NSDictionary wartościNSDictionary wartości dostępu skrót

[my_dict objectForKey:@"field"] 
[my_dict valueForKey:@"field"] 
my_dict[@"field"] 

Czy ktoś może mi powiedzieć?

+1

http://stackoverflow.com/questions/1062183/objective-c-whats-the-difference-between-objectforkey-and-valueforkey – codingNinja

+2

Moje podstawowe zapytanie dotyczyło raczej skrótu 'my_dict [@" field]] ' . –

Odpowiedz

49

[my_dict objectForKey:@"field"] to metoda NSDictionary. Akceptuje dowolny typ obiektu.

[my_dict valueForKey:@"field"] to metoda KVC. Akceptuje tylko NSString.

my_dict[@"field"] jest to samo, co objectForKey:. To jest nowa funkcja dodana.

+0

Naprawdę jasne wyjaśnienie. Dzięki –

+0

Po prostu to widziałem. Zajrzyj na https://clang.llvm.org/docs/ObjectiveCLiterals.html#dictionary-style-subscripting, aby uzyskać pełną dyskusję na temat literałów i indeksów. – Armand