iPhone:滚动 UITableView 多达 60 多个自定义单元格时应用程序崩溃

Posted

技术标签:

【中文标题】iPhone:滚动 UITableView 多达 60 多个自定义单元格时应用程序崩溃【英文标题】:iPhone: app crashing when scrolling UITableView up to 60+ custom cells 【发布时间】:2012-03-11 06:19:11 【问题描述】:

我在网上多次搜索同一个问题,也得到了很多相关的答案,但没有一个能解决我的问题。 这是问题所在:我有一个 UITableView,其顶部有 UISearchBar。当用户搜索特定单词时,UITableView 充满了自定义单元格。 它在模拟器中运行良好。问题出在设备上,我的意思是 iPad。 现在,当 tableview 有近 40-50 个单元格时,即使用户滚动它也能正常工作。但是,如果 tableView 包含 60 多个单元格并且用户滚动到 55 个以上的单元格,则应用程序崩溃而没有给出任何错误。我已启用 NSZoombie。我已经调试了很多次应用程序,但没有结果。

【问题讨论】:

在仪器中分析您的应用程序。如果它在设备上而不是模拟器上崩溃,并且崩溃发生在大量单元格上,那么您可能内存不足,因此您要么有泄漏,要么您没有正确重用单元格。 【参考方案1】:

分析您的应用,看看您是否使用了太多内存。 你也可以从你的 appdelegate 的 applicationDidReceiveMemoryWarning 方法中看到内存警告,只需实现它并在入口处放置一个断点。 如果单元的重用存在问题,则可能是分配了过多的单元并超出了内存限制。

【讨论】:

是的,该应用程序正在使用大量图像,因此肯定存在内存问题。我已经在应用程序委托的 applicationDidReceiveMemoryWarning 方法中插入了一个警报视图。有时它会给出内存不足的消息,但大多数时候它会崩溃而没有给出任何警告。

以上是关于iPhone:滚动 UITableView 多达 60 多个自定义单元格时应用程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章

iPhone通过滑出表格视图来滚动UITableview

仅在 iPhone 5C 上滚动 UITableView 会导致异常和崩溃

如何让 uitableview 知道在哪里滚动未创建的视图

如何使用 UITableView 创建包含 UIWebView 的可滚动视图

UITableView 内的 UIScrollView 无法正确显示/隐藏(Xcode iPhone)

部分的 UITableView 标题仅在向下滚动时出现