【发布时间】:2012-01-27 18:14:55
【问题描述】:
我有两个实体,日记帐和帐户。这种关系是一对多的:Journal 只有一个 Account。 Account 有很多期刊。我想根据其日记显示每个帐户的总数,但我不知道如何。目前我为每个帐户获得的总数是相同的:
在我的 UITableView (Accounts.m) 中,我有:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
XbAccountsN *cell = (XbAccountsN *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
if (cell == nil) {
[[NSBundle mainBundle] loadNibNamed:@"XbAccountsN" owner:self options:nil];
cell = xbAccountsN;
self.xbAccountsN = nil;
GMAccount *awCuentasy = (GMAccount *)[self.fetchedResultsController objectAtIndexPath:indexPath];
cell.cnAlias.text = awCuentasy.cnAlias;
NSDecimalNumber *saldoAc = [NSDecimalNumber decimalNumberWithString:@"0.0"];
for (NSManagedObject *object in [self.fetchedResultsController fetchedObjects]) {
NSLog( @"Looping");
NSDecimalNumber *objectExpenseNumber = [object valueForKeyPath:@"journals.@sum.pzAmount01"];
balanceC = [balanceC decimalNumberByAdding:objectExpenseNumber];
}
NSNumberFormatter* bf = [[NSNumberFormatter alloc] init];
[bf setNumberStyle:NSNumberFormatterCurrencyStyle];
cell.cnSaldo.text = [bf stringFromNumber: balanceC];
[bf release];
即使我只有两个帐户,以及与每个帐户相关的几本日记帐,我每个帐户的金额都相同。如何为每个帐户提供正确的余额?请你帮助我好吗?。提前致谢。
【问题讨论】:
-
请提供您所有的方法代码。我猜你是在 if (cell==nil) 块中设置你的变量值。也许吧。
-
文森特,感谢您的宝贵时间。我把整个方法的代码。我是 xcode 的新手,如果您需要其他内容,请告诉我。
-
这个逻辑首先属于你的模型。为什么每次表格视图请求单元格时都需要重新计算?
-
马克,我没听懂你(抱歉,我是移动 IT/BT 的财务人员)。我不太习惯所有术语。让我澄清一下。用户从 UITableView (Accounts) 中选择一个帐户,然后,他创建一个日志(通过导航栏中的一个按钮)。输入日记帐后,他返回第一个表(帐户)。预计每个帐户的余额都会更新。我的理解是 UITableView 通过它的委托运行这种更新。
-
感谢您的反思。消除“for”语句是一个很好的提示。
标签: iphone ios uitableview core-data