2

我想在我的 UItableview 中使用自定义的可重用 UITableViewCell,它可以工作,但是,使用仪器测试 - 分配,我看到当我离开 UIViewController 并重新输入几次时内存没有释放。

这是我尝试过的三种方法,

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    // method #1
    static NSString *CellIdentifier2 = @"customClassicCell";
    customClassicCell *cell = (customClassicCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier2];
    if (cell == nil){
        NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"customClassicCell" owner:nil options:nil];
        for(id currentObject in topLevelObjects)
        {
            if([currentObject isKindOfClass:[customClassicCell class]])
            {
                cell = (customClassicCell *)currentObject;
                break;
            }
        }
    }

    return cell;
}

或者

static NSString *cellIdentifier44 = @"custom44";
- (void)viewDidLoad {
    [self.tbv registerNib:[UINib nibWithNibName:@"customClassicCell" bundle:nil] forCellReuseIdentifier:cellIdentifier44];
    [super viewDidLoad];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    // method #2
    customClassicCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier44];

    return cell;
}

或者

// method3
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier44];
    if (cell == nil)
    {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:cellIdentifier44] ;
    }
    return cell;
}

仪器显示了这一点(每次我出去并进入我的 UIviewcontroller),这 3 种方法都是同样的问题,内存没有正确释放。 工具分配

仪器分配 2

我使用 xcode 5.0 目标 5.1

我既不使用 ARC,也不使用情节提要。有人有想法吗?

4

0 回答 0