2017-04-26 8 views
0

cellが「弱い」ように次のクロージャを変更するにはどうすればよいですか? :Swiftガードステートメント内の弱い変数を定義する方法

guard let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath as IndexPath) as? PlayerTableViewCell else { 
      fatalError("The dequeued cell is not an instance of PlayerTableViewCell") 
     } 

これを実現する簡単な方法があると確信していますが、これを処理する正しい方法を判断できませんでした。

おかげで

+4

なぜ、あなたの 'cellForRowAt'メソッド内の弱い参照が必要でしょうか? – rmaddy

+1

これは単なる 'ガード'ステートメントであり、クロージャー式ではありません。 – Hamish

+0

@maddy - 私はInspectionツールを実行して、このステートメントがメモリから 'cell'オブジェクトを解放していないこと、そして' cell'のいくつかのインスタンスがメモリにぶら下がっていることに気付きました。私の研究は、 'cell'を弱くして使用後にメモリから解放されるようにする必要があることを示唆しています。 – Dave

答えて

0

dequeueReusableCellへの重複呼び出しは、私が弱体化するために必要な強い参照を持っていたと思うために私を導いたメモリ消費の問題を、引き起こしていました。

この誤った追加呼び出しを削除すると、修正が必要だと思われる根本的な問題が解決されました。

関連する問題