【发布时间】:2013-03-02 07:59:20
【问题描述】:
嗨,在我的 iPad 应用程序中,我正在使用搜索栏和 tableview,搜索完成后,我在 tableview 中显示结果。为了用新的搜索结果更新表格,我正在调用 reloadData 方法。它工作正常,但在少数情况下,应用程序在 [tableviewobject reloaddata] 方法处崩溃,我在控制台中收到此错误
对象 0x95a0300 的错误:未分配被释放的指针 * 在 malloc_error_break 中设置断点进行调试。
通过观察上述错误,我了解到 tableviewobject 已从内存中删除。我将消息发送到释放的对象。为了克服这个问题,我所做的是在将消息 reloadData 传递给 tableviewobject 之前分配内存
tableviewObject=[[UITableView alloc]init];
tableviewObject.delegate=self;
tableview.datasource=self;
[tableviewObject reloaddata];.
在结果数据未在 tableview 中更新的情况下。现在我想知道的是如何知道对象是活着的还是从内存中释放出来的。如果它释放了如何为表视图对象分配内存以重新加载搜索结果数据。如果有人有任何想法,请为此提供解决方案。提前谢谢请帮帮我。
注意:在我的项目中,我使用的是 ARC。
【问题讨论】:
-
读取这个错误发生的方式有多少stackoverflow.com/questions/1424210/…
-
它也可能是在调用 reloadData 时通过表视图数据源访问的任何已释放的对象,不一定是您的实际表视图。我的猜测是源数组中的一个对象已被释放,关键是确保在释放它时将其从数据源数组中删除,以免发生这种情况。但是,所有这些都只是猜测,因为您没有包含任何代码。如果您真的需要帮助,请告诉我们您在做什么。 :)
-
如果你能在模拟器上重现问题,在僵尸仪器下运行。如果您只能在设备上执行此操作,请转到 Product > Scheme > Edit Scheme... > Run > Diagnostics 并选中“Enable Zombie Objects”复选框。
-
您使用了多少个表格视图?你是单独使用 UISearchBar 还是和 UISearchDisplayController 一起使用?
标签: iphone uitableview search automatic-ref-counting