NSDictionary
にキーが存在するかどうかを確認するにはどうすればよいですか?Cocoa/Objective-C - NSDictionaryにキーが存在するかどうかを確認します
コンテンツがあるかどうかを確認する方法はわかりましたが、動的であり、防止する必要があるため、コンテンツがある場合は非常にしたいです。いくつかの場合のように、「名前」と値を持つキーが存在することもありますが、別のケースでは、この値のペアが存在しないことがあります。
NSDictionary
にキーが存在するかどうかを確認するにはどうすればよいですか?Cocoa/Objective-C - NSDictionaryにキーが存在するかどうかを確認します
コンテンツがあるかどうかを確認する方法はわかりましたが、動的であり、防止する必要があるため、コンテンツがある場合は非常にしたいです。いくつかの場合のように、「名前」と値を持つキーが存在することもありますが、別のケースでは、この値のペアが存在しないことがあります。
最も簡単な方法です。
編集:ブラッドリーの答えにコメントする回答が
あなたがさらに尋ねる:
かどうかを確認する方法はありますこの:[[[contactDetailsDictionary objectForKey: "プロ"] objectForKey @: @ "CurrentJob"] objectForKey:@ "Role"]は存在しますか?本当に巨大な辞書なので、単一のキーではないので、別のカテゴリに存在する可能性があります。あなただけ書く上のObjective-Cでは
あなたはとても簡単な方法を拡大し、それは誤りではないとnil
を返し、nil
にメッセージを送ることができます。
[[[contactDetailsDictionary objectForKey:@"professional"]
objectForKey:@"CurrentJob"]
objectForKey:@"Role"] != nil
のどの部分かのようにLHS存在しないキーシーケンスを検証する方法はあり
NSDictionary
はすべてのキーをNSArray
として返し、containsObject
を配列に返します。辞書は非existantキーのnil
を返す
[dictionary objectForKey:@"key"] != nil
として(そして、あなたはそれゆえ、そのためにあなたがNSNull
を使用し、辞書にnilを格納することはできません):
NSDictionary* dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"object", @"key"];
if ([[dictionary allKeys] containsObject:@"key"]) {
NSLog(@"'key' exists.");
}
nil
を返す場合、この: [[[contactDetailsDictionary objectForKey:] "プロ" objectForKey @:objectForKey] "CurrentJob" @:@ "役割"] ] が存在しますか?本当に巨大な辞書なので、単一のキーではないので、別のカテゴリに存在する可能性があります。 –
'NSDictionary'を返すメソッドの代わりに' dictionary'を置き換えます。 –
メソッドが同じものを返す場合は、その必要性は何ですか?たぶんそれはノブの質問ですが、私はフロントエンドから来て、Objective Cは私をゆっくりと殺しています:P –
連鎖検索の場合は、KVC: '[contactDetailsDictionary valueForKeyPath:@" professional.CurrentJob.Role "]'を使用することもできます。 –
コードの第1行に小さなタイプミスがあります。メソッド名は 'objectForkey'ではなく' objectForKey'です。 – jamix
@jamix - ありがとう、修正されました。 – CRD