![](/img/trans.png)
[英]Dynamic member lookup with multiple keypaths for enums with associated values
[英]Performing valueForKeyPaths against multiple keyPaths
假设我有一个具有一定数量属性的对象,并将1000个这些对象加载到数组中。 接下来,我针对这些属性执行一系列valueForKeyPaths
:
result.property1 = [array valueForKeyPath:@"@sum.property1"];
result.property2 = [array valueForKeyPath:@"@sum.property2"];
result.property3 = [array valueForKeyPath:@"@sum.property3"];
etc...
单独汇总这些属性似乎效率很低。 除了快速枚举属性并手动求和之外,还有没有更好的方法? 即
for(Foo* foo in array) {
result.property1 += foo.property1;
result.property2 += foo.property2;
result.property3 += foo.property3;
}
KVC要求键必须是字符串:
密钥是标识对象的特定属性的字符串。 通常,键对应于接收对象中访问器方法的名称或实例变量。 密钥必须使用ASCII编码,以小写字母开头,并且不能包含空格。
因此,据我所知,不幸的是,您无法使用valueForKeyPath:
做到这一点valueForKeyPath:
您将不得不手动执行或枚举它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.