我可以从字典中获取键(字符串)的数组,然后循环遍历它,与我要检查的键进行字符串比较,看看该字典是否包含我寻找的键。
但是是否有更优雅的方式来检查字典中是否存在密钥?
NSArray * keys = [taglistDict allKeys];
for (NSString *key in keys)
{
// do string compare etc
}
-代码
我可以从字典中获取键(字符串)的数组,然后循环遍历它,与我要检查的键进行字符串比较,看看该字典是否包含我寻找的键。
但是是否有更优雅的方式来检查字典中是否存在密钥?
NSArray * keys = [taglistDict allKeys];
for (NSString *key in keys)
{
// do string compare etc
}
-代码
AnNSDictionary
不能包含值,因此如果键不存在nil
,您可以简单地使用[NSDictionary objectForKey:]
which 将返回: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
Trojanfoe 可能更好,但您也可以这样做:
[[taglistDict allKeys]containsObject:key]
假设键是类型NSString
并且keys
是字典,那么你应该使用类似的东西:
if [keys containObject:key] {
// do something
}