簡體   English   中英

cellForRowAtIndexPath的小計

[英]Subtotal at cellForRowAtIndexPath

我有兩個實體,日記帳和帳戶。 這種關系是一對多的:日記帳只有一個帳戶。 帳戶有許多日記帳。 我想根據其日記帳顯示每個帳戶的總數,但我不知道如何。 目前,我為每個帳戶獲得的總金額是相同的:

在我的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)塊中設置了單元格標簽 這是不正確的。 請注意,在tableView中, 單元將被回收,並且當創建足夠數量的單元時,將不再調用該塊,因為回收隊列中有舊單元可用。 好。 下面是正確的方法。 (檢查語法,我在這里寫過)。

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {    
    static NSString *CellIdentifier = @"Cell";

    XbAccountsN *cell = (XbAccountsN *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    cell.accessoryType=UITableViewCellAccessoryDisclosureIndicator;

    if (cell == nil) {
        // Init new cell from nib archive (assuming the cell is the top most object in your xib)
        cell = (UITableviewCell*)[[[NSBundle mainBundle] loadNibNamed:@"XbAccountsN" owner: nil options:nil] objectAtIndex: 0];
    }

// Calculate your sum for the given awCuentasy
    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];
}

return cell;

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM