Когда самое лучшее время для вызова [reloadData] в UITableView? viewDidAppear или viewWillAppear? Если выгрузите представление, будет ли выгружено базовое табличное представление?UITableView reloadData best practice
Причина, по которой я прошу, связана с каким-то поведением, которое я вижу. Предположим, что пользователю предлагается перезагрузить его источник данных, но он освобожден до его завершения. Сценарий будет с UITabBarController и перейти к другому представлению, чем выбранный ViewController. Так что происходит, что viewWillAppear вызывается, но viewDidAppear не делает (с тех пор, как я отплыл).
В результате ViewController получает освобождение (вместе с его данными модели), но если я вызываю reloadData в viewWillAppear, вызывается метод cellForRow и numberOfRows, который вызывает ошибку «deallocated instance». Имеет ли это смысл? Обычно вы вводите код, который проверяет значение nil, если модель может быть изменена в любое время, когда запрашивается представление?
Это действительно зависит от того, чего вы пытаетесь достичь. – Gobot
Ну, я думаю, что это приводит к некоторому поведению, которое я наблюдаю с iOS. Предположим, ваши данные модели могут меняться каждый раз, когда появляется представление (данные клиента хранятся в сеансе на клиенте). – Clay
Что именно снимается? Вид таблицы обычно не удалялся из памяти только потому, что вы перешли на другую вкладку, и сам контроллер представления не освобождался просто потому, что его просмотр был выгружен. Какая катастрофа вы видите? – jrturton