0

単一の UITableView に何百ものエントリを含めることができるプロジェクトがあります (テスト目的で約束します)。私はUITableViewsに非常に慣れていないため、UITableViewsの操作方法をテストしています。気に入らないものに遭遇しました。

dequeueReusableCell を威厳を持って使用すると、問題なく動作します。たとえば、カスタム テーブル ビューに 100 個のカスタム セルを追加するボタンがあります。そして、すべてが完璧です

問題は、これらのセルを削除するときです! データベースから情報を削除してから、tableView と reloadData からセルを削除します。CustomTableViewCells の割り当てが解除されないことを除いて、すべて問題ありません!!! 問題?デキュー システムを使用しているからではないと思いますが、何百ものセルがテーブル ビューに出入りしていて、1 つのセルの割り当てが解除されていないため、未使用の TableViewCells からメモリが蓄積されています。

おおノエズ!

誰でもこれに対処する方法を見つけますか? どういうわけか再利用セル数を制限して、50 個の再利用セルの後、メモリのために割り当て解除を開始しますか?

4

1 に答える 1

0
  1. 「tableViewからセルを削除する」と述べてからreloadData. ただし、セルは削除しないでください。あなただけreloadDataで、iOS はテーブルをクリーンアップし、テーブル ビュー セルを再利用します (もちろん、cellForRowAtIndexPath正しく呼び出していると仮定しますdequeueReusableCellWithIdentifier)。それとも、あなたreloadDataとあなたはiOSにその魔法を任せると言いたかっただけですか?

  2. いずれにせよ、コードを含めていただければ、問題を見つけるお手伝いができます。

  3. 静的アナライザー ( shift+ command+ B) を使用してコードを実行することをお勧めします。これは、問題を見つけるのに役立つ場合があります。多くの単純なリークは、静的アナライザーですぐに検出されます。静的アナライザーからの警告はゼロになるはずです。

  4. それでもリークが発生する場合は、プロファイラーを使用してリークを見つけてください

于 2012-06-27T15:30:46.643 に答える