在didSelectRowAtIndexPath中更新UITable会导致iOS7泄漏,但不会导致iOS6泄漏

时间:2013-09-19 19:25:04

标签: ios xcode ipad ios7

当用户点击任何行时,我有一个UITableView我修改(删除一行并插入一行)。内存释放在iOS6及更早版本中运行良好,但iOS7不会发布tableview。这是我的代码的基础知识。我已经大大减少了代码,但问题仍然存在。

- (void)tableView:(UITableView *)intableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [intableView beginUpdates];
    [intableView endUpdates];
}

开始/结束更新会导致内存被占用。如果我在此函数中插入或删除行(以及后台数据数组),它也是一样的。我通过添加:

将UITableView和单元格子类化
-(void)dealloc
{
    NSLog(@"deallocated %@",[self class]);
}

这样我才能看到他们何时被解除分配。我们不应该再次更新关于选择的tableview了吗?它是在一个不同的线程,什么东西被举行? (我已尝试dispatch_async进入不同的主题)

我可以发布更多代码,但是我当前的代码看起来就像我发布的那样,并且它仍然以某种方式保留在tableview上而不是取消分配它。

0 个答案:

没有答案