快速的方式来总结一个的NSSet中的所有对象的属性?(Quick way to sum a prop

2019-06-25 13:05发布

我觉得有一种能快速问NSSet轮询其成员并返回一个总和的说,一个NSInteger在其每个对象的属性,但我很可能是事物的Mac OS X的侧混淆这一点。 是否在Cococa触摸这个存在吗?

我能找到最接近的是objectEnumerator ,因此我想我可以通过步枪每一个对象,并增加自己的变量。 是否更好的方法存在吗?

Answer 1:

如果你想找到一个属性(总和theIntegerPropertyToSum )用于阵列/套派生类的每个成员这是KVC兼容( theSet ),你可以做到以下几点:

NSNumber* theSum = [theSet valueForKeyPath:@"@sum.theIntegerPropertyToSum"];


Answer 2:

为什么不使用纯客观的C(2)?

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

缺点:如果你喜欢数线,那么这看起来更长。 是否有其他缺点 - 我不知道用KVC方法与对象不具有所要求的“theIntegerPropertyToSum”属性会发生什么?

优势:我敢打赌,这个调试和性能测试更容易。 另外,当有人在一两年之人阅读您的代码,他们会知道是怎么回事 - 他们是否看到过线的目标C或没有的,这看起来像什么是真正发生的事情。



文章来源: Quick way to sum a property of all objects within an NSSet?