Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios NSDictionary-需要检查字典是否包含键值对_Ios_Objective C_Nsdictionary - Fatal编程技术网

Ios NSDictionary-需要检查字典是否包含键值对

Ios NSDictionary-需要检查字典是否包含键值对,ios,objective-c,nsdictionary,Ios,Objective C,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:@"xro

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

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"];
现在,我需要检查如下内容

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); 
[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\"");
}

Edit:至于您编辑的第二个问题,它只是
nsuiger mCount=[xyz count];
。这两个答案都有很好的文档记录,在类引用()中很容易找到。

使用文本语法,您可以检查如下内容

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事实上,文档直截了当地说:如果键存在于字典中,且其值为0,该怎么办?我们难道不会错误地认为键根本不存在于字典中吗?@jbx72487字典必须包含对象;
objectForKey:
返回一个
id
——一个指向Objective-C对象的指针。如果您是toring数字,它们必须是一个。即使NSNumber为零或为false,它仍然是一个有效指针,并且上面的代码将准确检测到存在。如果不与我一起使用,它将返回以下结果:由于未捕获的异常“NSInvalidArgumentException”终止应用程序,原因:'-[\u NSSingleObjectArrayI objectForKey:]:发送到实例0x60000133a1c0的选择器无法识别'