web-dev-qa-db-ja.com

NSDictionary-辞書にキーと値のペアが含まれているかどうかを確認する必要があります

次のように質問するだけです。辞書を持っているとします。

NSMutableDictionary *xyz=[[NSMutableDictionary alloc] init];
[xyz setValue:@"sagar" forKey:@"s"];
[xyz setValue:@"amit" forKey:@"a"];
[xyz setValue:@"nirav" forKey:@"n"];
[xyz setValue:@"abhishek" forKey:@"a"];
[xyz setValue:@"xrox" forKey:@"x"];

今、私は次のように確認する必要があります

[xyzにはキー「b」値が含まれますか??ペアかどうか?

質問はどうですか?

もう1つの質問は、キーと値のペアの合計をカウントする方法です。

たとえばNSInteger mCount=[xyz keyCounts];

91

objectForKey:@"b"nilを返す場合、そのキーにはオブジェクトは設定されていません。

if ([xyz objectForKey:@"b"]) {
    NSLog(@"There's an object set for key @\"b\"!");
} else {
    NSLog(@"No object set for key @\"b\"");
}

Edit:編集した2番目の質問については、単にNSUInteger mCount = [xyz count];。これらの回答は両方とも適切に文書化されており、 NSDictionary クラス参照( [1][2] )で簡単に見つけることができます。

183
Matt B.

リテラル構文を使用すると、次のように確認できます

static const NSString* kKeyToCheck = @"yourKey"
if (xyz[kKeyToCheck])
  NSLog(@"Key: %@, has Value: %@", kKeyToCheck, xyz[kKeyToCheck]);
else
 NSLog(@"Key pair do not exits for key: %@", kKeyToCheck); 
1
hariszaman