1

tableviewcell ( exc_bad_access )のメモリ管理に問題があります。
私のtableviewcellの 1つには、非同期 html データ ( loadHTMLStringメソッド) をロードする uiwebview が含まれており、現在のコントローラーがそのデリゲートとして設定されています。
ナビゲーション コントローラーから tableviewcontroller をポップするのが速すぎると、アプリがクラッシュします。

私の意見では、これが失敗する理由です:
- コントローラーの前にセルが解放された場合 => すべて OK、デリゲートはまだ有効であり、独自の解放メソッドでデリゲートを nil に設定することもできます
- コントローラーの後にセルが解放された場合 (iテーブル ビュー セルが自動解放されるため推測) => デリゲートがまだ割り当て解除されたコントローラーに設定されているため、アプリがクラッシュする

これを正しく解決する方法はありますか?? ありがとうございました..

cellForRowAtIndexPath のコード:

...
CustomTableViewCell * cCell = (CustomTableViewCell*)cell; 
cCell.myWebView.delegate = self; 
[[cCell myWebView] loadHTMLString:html baseURL:baseURL];
....
4

2 に答える 2

1

Web ビューを解放する前に、セルの割り当て解除時にstopLoadingを追加してみてください。

于 2012-07-12T13:26:50.453 に答える