0

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

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

问题是当我删除这些单元格时!我从数据库中删除信息,然后从 tableView 和 reloadData 中删除单元格。一切都很好,除了 CustomTableViewCells 永远不会被释放!!!问题?我认为不是因为我使用的是出队系统,而是因为数百个单元格正在进入和退出表格视图,并且没有一个单元格被释放,因此未使用的 TableViewCells 内存在 inf 堆积!

哦,诺兹!

有人找到解决这个问题的方法吗?以某种方式限制重用单元格的数量,以便说在 50 个重用单元格之后,他们为了内存而开始解除分配?

4

1 回答 1

0
  1. 您提到您“从 tableView 中删除单元格”,然后reloadData. 但是你不应该删除单元格。您只需reloadData和 iOS 负责清理您的表格并重用您的表格视图单元格(当然,假设您cellForRowAtIndexPath的调用正确dequeueReusableCellWithIdentifier)。或者你只是想说你reloadData和你让 iOS 发挥它的魔力?

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

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

  4. 如果您仍在泄漏,请使用分析器查找您的泄漏

于 2012-06-27T15:30:46.643 回答