我有一個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