2011-07-06 5 views
8

@ sum.selfキーパスを使用してNSNumbersの配列を合計することができますが、それはNSDecimalNumbersでも機能しますか?結果は正確でしょうか?NSDecimalNumbersの合計NSArray

EDIT:具体的には、NSNumberで動作するコードがあります。

NSNumber *sum = [numArray valueForKeyPath:@"@sum.self"]; 

答えて

12

NSDecimalNumberNSNumberのサブクラスであるので、この能力を継承します。

また、私はこれらのいずれかを使用することをお勧めします:

NSDecimalNumber *sum = [numArray valueForKeyPath:@"@sum.floatValue"]; 

float sum = [[numArray valueforKeyPath:@"@sum.floatValue"] floatValue]; 
+4

はfloatValue'がNSDecimalNumber' 'の精度を否定'使用してませんか? – Austin

+0

はい、そうです。これは非常に悪い習慣です。 –