2011-12-13 18 views
8

w słowniku nazwie dict para klucz wartość:Jak zdobyć obiekt dla klucza z NSDictionary?

"alba \ U2019s oknie" = "Wzór w westindies.";

I wysłać objectForKey: Otrzymuję ciąg jak "okno alba". Kiedy wysyłam, jak następuje:

[dict objectForKey: alba's window];

Nic nie dostaję, pokazuje zero.

+2

Co jeśli robisz '[DICT objectForKey: @„okno Alby”];' lub ' [dict objectForKey: @ "okno alba \ u201" ";;? – Cyrille

Odpowiedz

16

Na początek, warto zrobić to rzeczywisty ciąg tak:

[dict objectForKey:@"alba's window"]; 

Zauważ też, że nie jest '\U2019; ale , który jest zupełnie inną postacią.

Ogólnie mówiąc, trzymanie się [a-zA-Z0-9]+ dla kluczy słownika jest prawdopodobnie dobrym pomysłem, chyba że wstawiasz i pobierasz programowo, używając dokładnie tego samego ciągu co klucz.

+0

używam tego only.it wyświetla tutaj różnicę. Powiedz mi tylko o tym. – Univer

+4

Nie rozumiem, o czym mówisz, ani tego, co chcesz powiedzieć. Aż do tego czasu niestety nie mogę ci pomóc. –

+0

Mam rozwiązanie "nie obsługuje w systemie Mac, więc został zastąpiony" następnie działa dobrze – Univer

2

Upewnij się, że Twój dict nie jest pusty; wysłanie wiadomości do obiektu zerowego spowoduje dyskretne niepowodzenie i zwrócenie null.

Innym sposobem sprawdzenia klucza/wartości jest po prostu NSLog(@"%@",dict);, a to pokaże zawartość słownika. Zauważ, że to wyjście pokazuje tylko cytaty wokół wartości, gdy wartość zawiera spację.

Upewnij się, że używasz tych samych par ciągów co klucz - wygląda na to, że używasz "alba\U2019s window" oprócz "alba's window".

5

Od iOS6 r wygodny sposób ustawiania i uzyskiwania dostępu do obiektu za pomocą klucza z NSDictionary jest:

//Setting the object in NSMutableDictionary 
dictionary[@"someKey"] = @"someString"; 

//Accessing the object 
NSString *str = dictionary[@"someKey"]; 
Powiązane problemy