7

我认为有一种方法可以快速要求 aNSSet轮询其成员并在其每个对象中返回一个NSInteger属性的总和,但我很可能将这与 Mac OS X 方面的事情混淆了。这在 Cococa Touch 中是否存在?

我能找到的最接近的东西是objectEnumerator,我想我可以遍历每个对象并增加我自己的变量。存在更好的方法吗?

4

2 回答 2

15

如果您尝试为theIntegerPropertyToSum符合 KVC ( ) 的数组/集合派生类的每个成员查找给定属性 ( )的总和theSet,则可以执行以下操作:

NSNumber* theSum = [theSet valueForKeyPath:@"@sum.theIntegerPropertyToSum"];
于 2009-07-10T03:02:15.337 回答
-3

为什么不使用简单的物镜 C (2)?

NSInteger theSum = 0;
for (id obj in theSetOrArray)
    theSum += obj.theIntegerPropertyToSum;

缺点:如果你喜欢数行,那么这看起来更长。还有其他缺点吗 - 我想知道 KVC 方法对于不具有所需“theIntegerPropertyToSum”属性的对象会发生什么?

优点:我敢打赌,这个调试和性能测试更容易。另外,当其他人在一两年内阅读您的代码时,他们将知道这里发生了什么——无论他们是否见过一行目标 C,这看起来就像实际发生的事情。

于 2009-07-10T06:17:18.120 回答