UITableViewCell和分配问题

时间:2013-10-14 20:05:08

标签: ios uitableview xcode-instruments

我想在我的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种方法的问题相同,内存未正确释放。 instruments-allocation

instruments-allocation-2

我使用xcode 5.0 target 5.1

我不使用ARC和故事板。有人有想法吗?

0 个答案:

没有答案