首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对多个keyPaths执行valueForKeyPaths

对多个keyPaths执行valueForKeyPaths
EN

Stack Overflow用户
提问于 2013-04-20 09:31:31
回答 1查看 218关注 0票数 1

假设我有一个具有一些属性的对象,我将这些对象加载到一个数组中。接下来,我对这些属性执行一系列valueForKeyPaths

代码语言:javascript
复制
result.property1 = [array valueForKeyPath:@"@sum.property1"];
result.property2 = [array valueForKeyPath:@"@sum.property2"];
result.property3 = [array valueForKeyPath:@"@sum.property3"];
etc...

单独对这些属性进行求和似乎效率很低。除了快速枚举属性并手动求和之外,还有更好的方法吗?即

代码语言:javascript
复制
for(Foo* foo in array) {
    result.property1 += foo.property1;
    result.property2 += foo.property2;
    result.property3 += foo.property3;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-20 10:52:28

KVC要求密钥为字符串:

键是标识对象的特定属性的字符串。通常,键对应于接收对象中的访问器方法或实例变量的名称。键必须使用ASCII编码,以小写字母开头,并且不能包含空格。

所以,据我所知,不幸的是,你不能用valueForKeyPath:做到这一点,你必须手动去做,或者枚举它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16115608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档