我有一个tableviewcell的内存管理问题(exc_bad_access)。
一个矿井的tableviewcell包括加载异步HTML数据(loadHTMLString方法),并且所述电流控制器被设置为它的代表一个UIWebView。
当我弹出从我的导航控制器太快应用程序崩溃tableviewcontroller。
在我看来,这就是为什么它失败的原因:
- 如果控制器之前细胞deallocs =>一切ok,委托仍然生活,我甚至可以将其委托设置为nil在自己的dealloc方法
- 如果细胞deallocs控制器后(我想,因为表视图细胞自动释放)=>应用程序崩溃,因为它代表它仍然设置为解除分配的控制器
IOS TableViewCell exc_bad_access autorelease错误
不知道如何正确地解决这个?? 谢谢。在的cellForRowAtIndexPath
CODE:
...
CustomTableViewCell * cCell = (CustomTableViewCell*)cell;
cCell.myWebView.delegate = self;
[[cCell myWebView] loadHTMLString:html baseURL:baseURL];
....
你能给一段代码吗? – fvwmer 2012-07-12 10:41:41
为了检查你的猜测,你可以在cell和viewController类'dealloc'上添加NSLog,我确信autoreleased单元在控制器之前被释放。 – 2012-07-12 13:37:21
应用程序在调用cell dealloc方法中的NSLOG之前崩溃。我想autorelease池来控制器释放后。很明显,当控制器被按下时,我真的很快点击按钮。如果我评论“[[cCell myWebView] loadHTMLString:html baseURL:baseURL];”一切工作正常.. – user1427835 2012-07-12 14:50:25