我有一个简单的数据模型(核心数据),但这里是它的精简版:
Account
----------------------------------------------------
NSSet<Transaction> transactions
Transaction
----------------------------------------------------
Account account
NSNumber amount
NSNumber type ( type ∈ ( 0->'Credit', 1->'Debit' ) )
我想获得一个帐户的总余额,但是,我不想将借记标记为负数。我只是希望它是一个借记类型的金额。
目前,在我添加借方之前,我可以通过 Account 中的此功能获取余额:
- (NSNumber *)currentBalance
{
return [self.transactions valueForKeyPath:@"@sum.amount"];
}
显然,只有当我扣款为负数时,这才有效。这里有一个优雅的解决方案,也许可以将集合过滤为贷方和借方,将它们相加并执行差异?这会保持准确性吗?我已经查看了 NSPredicate,但我不确定如何进行。