UITableView хранит старые ячейки в [self.tableView reloadData] - PullRequest
2 голосов
/ 22 марта 2012

У меня есть приложение Split View.Когда некоторые данные вводятся в поля в Master View Controller, я обновляю модель (совместно используемую Master и Detail View Controllers), а затем Master VC просит, чтобы Detail VC обновил себя - Detail VC вызывает [self.tableView reloadData].

В первый раз, когда таблица рисует ячейки, все как и ожидалось.Моя проблема заключается в том, что после изменения модели и выполнения другого вызова reloadData старые ячейки не удаляются.Вместо этого он добавляет больше ячеек в конец таблицы.

Допустим, мой массив начинается с {0,1,2}.Таблица рисует ячейки 0, 1, 2. Модель меняет массив на {0, 1, 2b}.reloadData вызывается.Таблица рисует ячейки 0, 1, 2, 0, 1, 2b.Я ожидаю, что начальные 0,1,2 были удалены, но это не так.Я неправильно понимаю, как работает reloadData?

РЕДАКТИРОВАТЬ: я понятия не имею, почему, но я был полностью и полностью убежден, что моя модель была в порядке.Спасибо, КазР, за то, что заставили меня взглянуть.Я не очищал массивы при их обновлении.

PS Не могу найти вариант, чтобы выбрать ответ, возможно, это «комментарии», а не «ответы»?

...