2011-04-06 123 views
0

有关如何解决此UITableView泄漏的任何建议?iPhone UITableView泄漏

下面是产生问题的一个非常基本的测试项目链接:

http://www.maani.us/temp/Test.zip

要重现泄漏:

  1. 运行的“泄漏”性能工具的项目。
  2. 在表格视图中,在右侧点击索引“4”跳到部分4
  3. 向上滚动有点从部分显示了几个细胞3.
  4. 等待几秒钟。这会在仪器中产生泄漏。

我测试了这两个版本4.2和4.3,都与模拟器和设备。所有测试都会产生泄漏。

谢谢你的帮助。

+0

Hi Jim;仅供参考,你不可能得到答案。除了运行泄漏仪器之外,你是否试图自己发现泄漏?你发现了什么? – 2011-04-06 02:36:18

回答

0

您是在模拟器还是在设备上测试它?在模拟器中有一些已知的UITableViewController泄漏,这些泄漏在硬件上不会发生。

我自己在我的模拟器中运行这个,我得到的唯一泄漏是NSIndexPAth和通用的16字节块,这两个块在互联网上被讨论为只在模拟器上泄漏。您还可以查看泄漏情况并查看它们是否已创建,并且只能在基础框架中进行访问。因此,它肯定似乎是框架本身的一个问题。一个可能的解决方法是使用UIViewController并自己设置UITableView。

+0

“**所有测试都会产生泄漏。**”我假设他也在设备上进行讨论。 – esqew 2011-04-06 03:56:49

+0

好点,我没有看到“和一个设备”的一部分。我会用更多的信息更新我的回复。 – drewag 2011-04-06 04:08:16

0

上面的测试项目仅包含构建UITable并确认泄漏位于基础框架(NSIndexPAth)中所需的最小代码。

是的,泄漏也发生在设备上。

原始代码使用显示UITableView的UIViewController。这也产生了泄漏。我删除了UIViewController以缩小问题范围,并确认泄漏仍然没有发生。

解决问题的唯一方法是删除UITable部分索引(sectionIndexTitlesForTableView:tableView),这在最终的应用程序中不是可能的选项。