密钥偶尔丢失时的键值编码

时间:2014-12-19 19:19:03

标签: objective-c key-value-coding

假设我有以下内容:

NSDictionary *searchResults = @{
  @"results": @[
    @{@"employee": @"John Doe"},
    @{@"company": @"Doe Inc"},
    @{@"employee": @"Jane Doe"}
  ]
};

我想使用KVC获取所有员工姓名。我会这样做:

NSArray *names = [searchResults valueForKeyPath:@"results.employee"];

我希望得到两个条目,但我得到三个:

(lldb) po [$searchResults valueForKeyPath:@"results.employee"]
<__NSArrayI 0x7fc59bd77840>(
John Doe,
<null>,
Jane Doe
)

如果我输入一个完全缺失的密钥,我将只得到NSNull的数组:

(lldb) po [$searchResults valueForKeyPath:@"results.employee1"]
<__NSArrayI 0x7fc59bd739a0>(
<null>,
<null>,
<null>
)

我可以构造一个只返回非空值的键路径吗?

0 个答案:

没有答案