にキーが存在するかどうかを確認するにはどうすればよいNSDictionary
ですか?
コンテンツがあるかどうかを確認する方法は知っていますが、動的であり、防止する必要があるため、そこにある場合は非常に確認したいと考えています。場合によっては、「名前」と値を持つキーを持つこともありますが、別の場合には、この値のペアが存在しないこともあります。
にキーが存在するかどうかを確認するにはどうすればよいNSDictionary
ですか?
コンテンツがあるかどうかを確認する方法は知っていますが、動的であり、防止する必要があるため、そこにある場合は非常に確認したいと考えています。場合によっては、「名前」と値を持つキーを持つこともありますが、別の場合には、この値のペアが存在しないこともあります。
最も簡単な方法は次のとおりです。
[dictionary objectForKey:@"key"] != nil
nil
存在しないキーに対して辞書が返されるため (したがって、辞書に nil を格納することはできません。そのため、 を使用しますNSNull
)。
編集:ブラッドリーの答えにコメントする答え
さらに次のように尋ねます。
[[[contactDetailsDictionary objectForKey:@"professional"] objectForKey:@"CurrentJob"] objectForKey:@"Role"] が存在するかどうかを確認する方法はありますか? は非常に巨大な辞書であるため、単一のキーではなく、別のカテゴリに存在する可能性があります。
Objective-C では、 にメッセージを送信できますnil
。これはエラーではなく を返しますnil
。したがって、上記の単純なメソッドを展開して、次のように記述します。
[[[contactDetailsDictionary objectForKey:@"professional"]
objectForKey:@"CurrentJob"]
objectForKey:@"Role"] != nil
キーシーケンスのどの部分も存在しないかのように、LHS が返しますnil
NSDictionary
すべてのキーを として返し、配列でNSArray
使用します。containsObject
NSDictionary* dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"object", @"key"];
if ([[dictionary allKeys] containsObject:@"key"]) {
NSLog(@"'key' exists.");
}