嗨,在我的iPad应用程序中,我使用搜索栏和表格视图,搜索完成后,结果显示在表格视图中。为了用新的搜索结果更新表,我正在调用reloadData方法。它工作正常,但在少数情况下,应用程序在[tableviewobject reloaddata]方法下崩溃,并且我在控制台中收到此错误
对象0x95a0300的错误:释放的指针未分配
*在malloc_error_break中设置一个断点进行调试。
通过观察上述错误,我理解的是tableviewobject从内存中删除。我正在将消息发送到释放的对象。为了解决这个问题,我所做的是在将消息reloadData传递给tableviewobject之前分配内存
tableviewObject=[[UITableView alloc]init];
tableviewObject.delegate=self;
tableview.datasource=self;
[tableviewObject reloaddata];.
在这种情况下,结果数据不会在表视图中更新。现在,我想知道的是如何知道对象是活动的还是从内存中释放出来的。如果释放了如何为表视图对象分配内存以重新加载搜索结果数据。如果有人有任何想法,请提供解决方案。预先感谢,请帮助我。
注意:在我的项目中,我正在使用ARC。
最佳答案
第三行中的UITableView名称拼写错误,是否引起您的注意?
tableviewObject=[[UITableView alloc]init];
tableviewObject.delegate=self;
tableview.datasource=self;
[tableviewObject reloaddata];
应该是tableviewObject.datasource = self;
此外,为什么每次都要创建新对象?这样您将失去旧的!第一次也是唯一一次在viewDidLoad方法中初始化它