99

我只需要问以下问题。假设我有一本字典。

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

4

2 回答 2

198

只求它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];。这两个答案都有很好的记录,并且很容易在NSDictionary类参考 ( [1] [2] ) 中找到。

于 2010-02-03T06:17:19.767 回答
3

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

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); 
于 2017-02-24T08:55:28.767 回答