【问题标题】:iPhone UITableView LeakiPhone UITableView 泄漏
【发布时间】:2011-04-06 02:31:41
【问题描述】:

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

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

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

重现泄漏:

  1. 使用“Leaks”性能工具运行项目。
  2. 在表格视图中,单击右侧索引中的“4”以跳转到第 4 节。
  3. 向上滚动一点以显示第 3 节中的几个单元格。
  4. 等待几秒钟。这会在仪器中产生泄漏。

我在 4.2 和 4.3 版本中都使用了模拟器和设备对此进行了测试。所有测试都会产生泄漏。

感谢您的帮助。

【问题讨论】:

  • 嗨,吉姆;仅供参考,您不太可能得到答案。除了运行泄漏仪器之外,您是否尝试过自己识别泄漏?你发现了什么?

标签: iphone uitableview memory-leaks


【解决方案1】:

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

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

【讨论】:

  • 所有测试都会产生泄漏。”我假设他也在设备上谈论。
  • 好点,我没有看到“和设备”部分。我会用更多信息更新我的回复。
【解决方案2】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2011-05-18
    • 1970-01-01
    • 2010-12-01
    • 2013-12-24
    • 1970-01-01
    • 2011-04-13
    • 1970-01-01
    • 2011-06-06
    • 2010-11-23
    相关资源
    最近更新 更多