保留UITableViewCell出列内存

时间:2012-06-27 01:17:58

标签: iphone ios memory uitableview reusability

我有一个项目,其中单个UITableView可以有数百个条目(出于测试目的,我保证)。我正在测试如何使用UITableViews,因为我对他们很新,我遇到了一些我不喜欢的东西。

如果你使用dequeueReusableCell所有的威严,它的工作正常!例如,我有一个按钮,可以将100个自定义单元格添加到自定义表格视图中。一切都很完美

问题是当我移除这些细胞时!我从数据库中删除信息,然后从tableView和reloadData中删除单元格。一切都很好除了CustomTableViewCells从来没有dealloc'd !!!问题?我想不是因为我正在使用dequeue系统,但是由于数百个单元格正在进入和退出表视图而且没有单个单元格被释放,因此未使用的TableViewCells会产生大量内存!

哦NOEZ!

有人找到办法解决这个问题吗?以某种方式限制重用单元数,以便在重复使用50个单元后,为了记忆起见,它们开始解除分配?

1 个答案:

答案 0 :(得分:0)

  1. 您提到“从tableView中删除单元格”,然后reloadData。但你不应该删除细胞。您只需reloadData和iOS负责清理表并重新使用表格查看单元格(当然,假设您的cellForRowAtIndexPath正在调用dequeueReusableCellWithIdentifier)。或者你只是试图说你reloadData而你让iOS发挥其魔力?

  2. 无论如何,如果您包含代码,我们可以帮助您找到问题。

  3. 我建议您通过静态分析器运行代码( shift + 命令 + B ),这可能会对您有所帮助找到你的问题。静态分析仪可以立即发现许多简单的泄漏。您应该从静态分析器发出警告。

  4. 如果您仍在泄漏,请使用分析器find your leak