嗨,在我的iPad应用程序中,我正在使用搜索栏和tableview,搜索完成后我在tableview中显示的结果。为了用新的搜索结果更新表,我打电话给reloadData方法。它工作正常,但在少数情况下的应用程序是在[tableviewobject reloaddata]方法崩溃,我得到这个错误控制台如何知道目标c中是否存在对象用ARC
错误对象0x95a0300:指针被释放没有被分配 *设置malloc_error_break断点进行调试。
通过观察上述错误我明白了什么是tableviewobject被从内存中删除。我将消息发送给释放的对象。序来克服这个问题,我所做的是我传递消息reloadData之前分配内存以tableviewobject这样
tableviewObject=[[UITableView alloc]init];
tableviewObject.delegate=self;
tableview.datasource=self;
[tableviewObject reloaddata];.
在结果数据没有实现代码如下更新情况。现在我想知道的是,我如何知道对象是活着还是从内存中释放。如果它释放了如何为表格视图对象分配内存以重新加载搜索结果数据。如果有任何想法,请为此提供解决方案。提前致谢,请帮助我。
注意:在我的项目中,我使用ARC。
阅读有多少这种错误发生的方式http://stackoverflow.com/questions/1424210/iphone-development-pointer-being-freed-was-not-allocated – Tirth 2013-03-14 04:46:54
它也可能是任何被访问的对象通过你的表视图数据源,当reloadData被调用时已经被释放,而不一定是你实际的表视图。我的猜测是,你的源数组中的一个对象已经被释放,并且关键是确保在释放数据源数组时将其从数据源数组中移除,以免发生这种情况。但是,所有这些只是一个猜测,因为你没有包含任何代码。如果你真的想要一些帮助,告诉我们你在做什么。 :) – lnafziger 2013-05-23 04:09:46
如果您可以在模拟器上重现问题,请在僵尸工具下运行它。如果您只能在设备上执行此操作,请转至产品>方案>编辑方案...>运行>诊断,然后选中“启用僵尸对象”复选框。 – 2013-05-23 05:21:02