如何验证密钥是否存在于NSDictionary
?
我知道如何验证它是否有一些内容,但我很想验证它是否存在,因为它是动态的,我必须阻止它。就像在某些情况下,它可能碰巧有一个带有“名称”的键并且是值,但在另一种情况下,这对值可能不存在。
如何验证密钥是否存在于NSDictionary
?
我知道如何验证它是否有一些内容,但我很想验证它是否存在,因为它是动态的,我必须阻止它。就像在某些情况下,它可能碰巧有一个带有“名称”的键并且是值,但在另一种情况下,这对值可能不存在。
最简单的方法是:
[dictionary objectForKey:@"key"] != nil
由于字典返回nil
不存在的键(因此您不能将 nil 存储在字典中,因为您使用NSNull
)。
编辑:回答评论布拉德利的回答
你进一步问:
有没有办法验证: [[[contactDetailsDictionary objectForKey:@"professional"] objectForKey:@"CurrentJob"] objectForKey:@"Role"] 是否存在?没有一个键,因为它是一个非常大的字典,所以它可能存在于另一个类别中。
在Objective-C中你可以向 发送消息nil
,它不是错误并返回nil
,所以扩展上面的简单方法你只需编写:
[[[contactDetailsDictionary objectForKey:@"professional"]
objectForKey:@"CurrentJob"]
objectForKey:@"Role"] != nil
好像键序列的任何部分都不存在 LHS 返回nil
NSDictionary
将所有键作为 an 返回NSArray
,然后containsObject
在数组上使用。
NSDictionary* dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"object", @"key"];
if ([[dictionary allKeys] containsObject:@"key"]) {
NSLog(@"'key' exists.");
}