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”值? 对还是不?

问题是如何?

另一个问题是如何计算总键值对?

说例如NSInteger mCount=[xyz keyCounts];

只要问一下objectForKey:@"b" 。 如果返回nil ,那么没有对象被设置为该键。

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

编辑 :至于你编辑的第二个问题,它只是NSUInteger mCount = [xyz count]; 。 这两个答案都很好的logging在NSDictionary类的引用( [1] [2] )中。

使用文字语法,您可以检查如下

 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);