私は単純なデータ モデル (コア データ) を持っていますが、これを簡略化したバージョンを次に示します。
Account
----------------------------------------------------
NSSet<Transaction> transactions
Transaction
----------------------------------------------------
Account account
NSNumber amount
NSNumber type ( type ∈ ( 0->'Credit', 1->'Debit' ) )
アカウントの合計残高を取得したいのですが、借方を負の数としてマークしたくありません。借方の種類のある金額にしたいだけです。
現在、借方を追加する前に、アカウントでこの関数を使用して残高を取得できました。
- (NSNumber *)currentBalance
{
return [self.transactions valueForKeyPath:@"@sum.amount"];
}
明らかに、それは借方をマイナスにした場合にのみ機能します。おそらくセットをクレジットとデビットにフィルタリングし、それらを合計して差を実行するためのエレガントなソリューションはありますか? それで精度が保てますか?NSPredicate を調べましたが、正確にどのように進めればよいかわかりません。