1

私のiPadアプリケーションは、メモリリークがほとんどありません。ここにスクリーンショットとコードがあります。進行状況を表示するために毎秒ごとにテーブルデータをロードしています。どうすればこの修正を取得できますか。

これは、テーブルをリロードすると常に発生します

// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
   static NSString* Identifier = @"OrderCustomCell";
    UserCustomCell* cells =(UserCustomCell*) [tableView dequeueReusableCellWithIdentifier:Identifier];

    if (cells == nil)
    {
        NSArray* topLevelObjects=[[NSBundle mainBundle] loadNibNamed:@"UserCustomCell" owner:self options:nil];
        for(id currentObject in topLevelObjects)
        {
            if([currentObject isKindOfClass:[UITableViewCell class]])
            {
                cells=(UserCustomCell *)currentObject;
                break;
            }
        }
    }

        NSDictionary* dic = [tableDataArray objectAtIndex:indexPath.row];
        cells.selectionStyle = UITableViewCellEditingStyleNone;
        cells.brandName.text = [dic objectForKey:@"brandname"];
        [cells.msyncBtn setTag:indexPath.row];

        NSString* status = [dic objectForKey:@"status"];
        if ([status isEqualToString:@""])
        {
            cells.status.text = [NSString stringWithFormat:@"0%@ Completo",@"%"];
        }
        else
        {
            cells.status.text = [NSString stringWithFormat:@"%@%@ Completo",status,@"%"];
        }

        NSString* syncDate = [dic objectForKey:@"syncDate"];
        if ([syncDate isEqualToString:@""])
        {
            cells.syncDate.text = [NSString stringWithFormat:@"Não sincronizado"];
        }
        else
        {
            cells.syncDate.text = [NSString stringWithFormat:@"%@",syncDate];
        }

        NSString* totalloaded = [dic objectForKey:@"totalloaded"];
        if ([totalloaded isEqualToString:@""])
        {
            cells.totalLoaded.text = [NSString stringWithFormat:@""];
        }
        else
        {
            cells.totalLoaded.text = [NSString stringWithFormat:@"%@",totalloaded];
        }
    return cells;
}

こちらの画像をご確認ください

スクリーンショット 1

4

1 に答える 1

0

これを試して

if (cells == nil)
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc]init];
    NSArray* topLevelObjects=[[NSBundle mainBundle] loadNibNamed:@"UserCustomCell" owner:self options:nil];
    for(id currentObject in topLevelObjects)
    {
        if([currentObject isKindOfClass:[UITableViewCell class]])
        {
            cells=(UserCustomCell *)currentObject;
            break;
        }
    }
[pool drain];
}
于 2013-02-18T08:24:43.980 に答える