假设我有以下内容:
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>
)
我可以构造一个只返回非空值的键路径吗?