我认为有一种方法可以快速要求 aNSSet
轮询其成员并在其每个对象中返回一个NSInteger
属性的总和,但我很可能将这与 Mac OS X 方面的事情混淆了。这在 Cococa Touch 中是否存在?
我能找到的最接近的东西是objectEnumerator
,我想我可以遍历每个对象并增加我自己的变量。存在更好的方法吗?
我认为有一种方法可以快速要求 aNSSet
轮询其成员并在其每个对象中返回一个NSInteger
属性的总和,但我很可能将这与 Mac OS X 方面的事情混淆了。这在 Cococa Touch 中是否存在?
我能找到的最接近的东西是objectEnumerator
,我想我可以遍历每个对象并增加我自己的变量。存在更好的方法吗?
如果您尝试为theIntegerPropertyToSum
符合 KVC ( ) 的数组/集合派生类的每个成员查找给定属性 ( )的总和theSet
,则可以执行以下操作:
NSNumber* theSum = [theSet valueForKeyPath:@"@sum.theIntegerPropertyToSum"];
为什么不使用简单的物镜 C (2)?
NSInteger theSum = 0;
for (id obj in theSetOrArray)
theSum += obj.theIntegerPropertyToSum;
缺点:如果你喜欢数行,那么这看起来更长。还有其他缺点吗 - 我想知道 KVC 方法对于不具有所需“theIntegerPropertyToSum”属性的对象会发生什么?
优点:我敢打赌,这个调试和性能测试更容易。另外,当其他人在一两年内阅读您的代码时,他们将知道这里发生了什么——无论他们是否见过一行目标 C,这看起来就像实际发生的事情。