Ячейки табличного представления не освобождаются после того, как табличное представление ссылается на них - PullRequest
1 голос
/ 05 марта 2019

Как освобождаются ячейки табличного представления (или ячейки табличного представления)? У меня есть простой UIViewController с UITableView в нем. UITableViewCell добавляется как ячейка прототипа через UIStoryboard. UIViewController освобождается правильно, но не в ячейках. Экземпляры ячеек табличного представления все еще присутствуют в графе памяти XCode. Он должен быть освобожден, поскольку UITableView ссылается на его освобождение.

1 Ответ

0 голосов
/ 05 марта 2019

Ячейки кэшируются таблицей, когда они перемещаются за пределы экрана.Глобального кэша нет.

Пока вы возвращаете автоматически выпущенную ячейку в "cellForRowAtIndexPath", ячейка будет уничтожена при уничтожении tableView.

Представления таблицы неЯ имею тенденцию выделять и освобождать ячейки табличного представления много.Создание ячеек стоит дорого, поэтому их можно использовать повторно, когда это возможно, а не отбрасывать, когда они уходят с экрана.

Метод UITableViewDelegate -tableView:didEndDisplayingCell:forRowAtIndexPath: - лучшее место для обновления ячеек, чтобы отменить загрузки или другие, более не требующиесоответствующие операции.

Вы идете сейчас и классного дня!

...