2016-05-10 49 views
3

私は迅速なアプリケーションでメモリの問題を発見しようとしています。 deinitが呼び出されたかどうか(たとえば代理人の強い参照)をチェックして、UITableViewCellまたはUICollectionViewCellのチェックを行い、deinitが呼び出されないことがわかりました。 UITableViewCellでdeinitを呼び出す必要がありますか?

私が使っ本当に簡単細胞があります。

  • 一部IBOutlets awakeFromNib(コーナー半径)セットアップビューにクライアントオブジェクトとのtableViewから呼び出さ
  • setClient機能上の
  • セットアップビューを
  • いくつかのビュー部分をリセットするために準備するために

更新:

tableViewがdeinitと呼んでいるかどうかをチェックしますが、そうではありません。したがって、UIViewControllerはそれをdeinitと呼びますが、tableViewはまだメモリにあります。

更新2:

問題が見つかりました。ガードletは、ヘルパー関数でtableViewを強力に参照していました。

+0

セルは、TableViewまたはCollectionViewの割り当てが解除されるまで、割り当て解除されません。あなたの質問への答えはいつに依存するのですか? – deadbeef

+0

私のUITableViewControllerはそれをdeinitと呼びます、そして、私はtableViewをnilに設定しようとしましたが、セルはまだdeinitしません。どのように問題がどこでデバッグするかについての任意のアイデア? –

答えて

2

テーブルビューセルは再利用されるため、テーブルビュー自体が選択されている場合にのみ、それらが優先される傾向があります。今使用されていなくても、再利用のために必要な場合に備えて、テーブルビューはそれらを存続させるためです。

+0

しかし、テーブルビューが指定されると、すべてのセルがあまりにも優先されますか? –

+0

@David Colladoはいあなたは正しいですか –

関連する問題