gpt4 book ai didi

objective-c - 嵌入式 NSArray 中第一个元素的键路径

转载 作者:太空狗 更新时间:2023-10-30 03:22:56 24 4
gpt4 key购买 nike

这个例子是人为设计的,但它表明了我的观点。

所以,如果我有一个像下面这样的对象图:

{
sex = male;
uid = 637650940;
work = ({
employer = {
id = 116420715044499;
name = "Software Engineer";
};
"end_date" = "0000-00";
"start_date" = "0000-00";
}, {
employer = {
id = 188733137832278;
name = "Apple";
};
});
},
//Some more objects

(这是一个包含 NSDictionary 的 NSArray,它有一个 NSArray 类型的对象)。

关键字段是work。我想要一个 Key Path,它将采用 work 数组中的第一个对象。

如果我这样做:

NSArray* work = [outerArrayObject objectForKey: @"work"];
id name = [work valueForKeyPath: @"employer.name"];

我得到一个包含每个名字的数组(在上面的例子中,Software Engineer & Apple)。是否有集合运算符或其他东西来返回第一个对象?如果您可以开发一个关键路径来按开始日期对每项工作进行排序,则可加分 :)

最佳答案

@PauldeLange - 你的回答和链接很有帮助。
以下更简单的版本也适用(至少从 Xcode 6 开始)

id name = [work valueForKeyPath: @"employer.name.@firstObject”];

上面的'firstObject'指的是NSArray上预定义的方法。如果需要第二个对象,您可以定义以下内容:

@implementation NSArray (CustomKVOOperators)

- (id) secondObject {
return [self count] >=2 ? self[1] : nil;
}
@end

并使用:

 id name = [work valueForKeyPath: @"employer.name.@secondObject”];

关于objective-c - 嵌入式 NSArray 中第一个元素的键路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12054846/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com