キーが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.");
}