fab*_*tos 11 cocoa objective-c nsdictionary ios
如何验证密钥是否存在NSDictionary?
我知道如何验证它是否有一些内容,但我想非常,如果它存在,因为它是动态的,我必须防止它.就像在某些情况下,它可能碰巧有一个带有"名称"的键并且是值,但在另一种情况下,可能会发生这对值不存在的情况.
CRD*_*CRD 21
最简单的方法是:
[dictionary objectForKey:@"key"] != nil
Run Code Online (Sandbox Code Playgroud)
因为字典返回nil非存在的键(因此你不能将nil存储在字典中,因为你使用的字符串NSNull).
编辑:回答评论布拉德利的答案
你进一步问:
有没有办法验证是否:[[[contactDetailsDictionary objectForKey:@"professional"] objectForKey:@"CurrentJob"] objectForKey:@"Role"]存在?不是一个单一的密钥,因为它是一个非常庞大的字典,所以它可以存在于另一个类别中.
在Objective-C中你可以发送一条消息nil,它不是一个错误并返回nil,所以扩展上面的简单方法你只需写:
[[[contactDetailsDictionary objectForKey:@"professional"]
objectForKey:@"CurrentJob"]
objectForKey:@"Role"] != nil
Run Code Online (Sandbox Code Playgroud)
好像LHS的任何部分都不存在一样,LHS返回 nil
NSDictionary将所有键作为a返回NSArray,然后containsObject在数组上使用.
NSDictionary* dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"object", @"key"];
if ([[dictionary allKeys] containsObject:@"key"]) {
NSLog(@"'key' exists.");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22888 次 |
| 最近记录: |