可能重复:
How to check if an NSDictionary or NSMutableDictionary contains a key?
我可以从字典中获取一个Keys(字符串)数组然后循环遍历它与我要检查的Key进行字符串比较,看看该字典是否包含我寻找的密钥。
但有没有更优雅的想要检查字典中是否存在密钥?
NSArray * keys = [taglistDict allKeys];
for (NSString *key in keys)
{
// do string compare etc
}
-Code
答案 0 :(得分:37)
NSDictionary
不能包含nil
个值,因此您只需使用[NSDictionary objectForKey:]
,如果该密钥不存在,将返回nil
:
BOOL exists = [taglistDict objectForKey:key] != nil;
编辑:正如@OMGPOP所提到的,这也可以使用以下语法使用Objective-C文字:
NSDictionary *dict = @{ @"key1" : @"value1", @"key2" : @"value2" };
if (dict[@"key3"])
NSLog(@"Exists");
else
NSLog(@"Does not exist");
打印:
Does not exist
答案 1 :(得分:9)
Trojanfoe可能会更好,但您也可以这样做:
[[taglistDict allKeys]containsObject:key]
答案 2 :(得分:-2)
假设密钥属于NSString
类型且keys
是字典,那么您应该使用以下内容:
if [keys containObject:key] {
// do something
}