1
我在NSManagedObject的子類中有一個方法,它返回所有資產的總和。目前,它看起來像這樣和正常工作在NSManagedObject子類上使用KVC集合運算符
- (NSDecimalNumber *)totalAssetValue
{
NSDecimalNumber *total = [NSDecimalNumber zero];
for (NSManagedObject *account in [self valueForKey:@"accounts"]) {
for (NSManagedObject *asset in [account valueForKey:@"assets"]) {
total = [total decimalNumberByAdding:[asset valueForKey:@"assetAmount"]];
}
}
return total;
}
我想用KVC集合運算符來消除環路,所以我想這個
- (NSDecimalNumber *)totalAssetValue
}
return [self valueForKeyPath:@"[email protected]"];
}
不過,我收到以下錯誤
- [__ NSSetI decimalValue]:發送到實例的無法識別的選擇器0x60000000dc70
我有適當的語法來複制上述循環嗎?或者是別的什麼?
謝謝您正確的文檔狀態「每個數字被轉換爲一個double值,計算值的總和,並將總數作爲NSNumber的一個實例包裝並返回。」 – Cory
@Cory:不幸的是,文檔不正確,比較http://stackoverflow.com/a/15383265/1187415。它使用'NSDecimal'作爲中間結果,並返回'NSDecimalNumber'。我的觀點只是我們不能*依靠那個。 –