寻找一种优雅的方法来检查词典中是否存在Key

时间:2012-07-25 15:22:06

标签: iphone objective-c ios ipad

  

可能重复:
  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

3 个答案:

答案 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
}