Najprostszym sposobem jest:
[dictionary objectForKey:@"key"] != nil
jak słowniki powrócić nil
dla kluczy nieistniejących (i nie można zatem zapisać nil w słowniku, za skorzystanie NSNull
).
Edycja: Odpowiedź na komentarz na odpowiedź Bradleya
można dodatkowo zapytać:
Czy istnieje sposób, aby sprawdzić, czy w ten sposób: [[[contactDetailsDictionary objectForKey: @ "profesjonalnego"] objectForKey: @ "CurrentJob"] objectForKey: @ "Role"] istnieje? Ani jednego klucza, ponieważ jest to naprawdę wielki słownik, więc mógłby istnieć w innej kategorii.
w Objective-C można wysłać wiadomość do nil
, to nie jest błąd i powraca nil
, więc rozszerzenie prosty sposób wyżej po prostu napisać:
[[[contactDetailsDictionary objectForKey:@"professional"]
objectForKey:@"CurrentJob"]
objectForKey:@"Role"] != nil
jakby dowolną część key-sekwencja nie istnieje LHS zwraca nil
Dla powiązanego wyszukiwania możesz również użyć KVC: '[contactDetailsDictionary valueForKeyPath: @" professional.CurrentJob.Role "]'. –
W pierwszej linii kodu występuje mała literówka, nazwa metody to 'objectForKey', a nie' objectForkey'. – jamix
@jamix - Dzięki, naprawione. – CRD