UITableView reloadData дублирует данные - PullRequest
3 голосов
/ 08 июля 2010

У меня есть 3 UITableViews на UIView, в котором я загружаю 3 разных набора данных из NSMutableArrays.Если я называю [myTableView reloadData] тип данных перезагрузки - он фактически добавляется в таблицу вместе с тем, что там уже есть.Таким образом, 3 вызова reloadData приводят к тройной информации в списке.

Как предотвратить это или как очистить tableView перед перезагрузкой?

1 Ответ

1 голос
/ 08 июля 2010

Самая распространенная причина этого - не повторное использование ячеек таблицы.Если вы создаете новую ячейку для каждой логической строки в массиве (вместо удаления из очереди и повторного использования), табличное представление может продолжать отображать все ячейки. (** Edit: **, вероятно, не произойдет.)

Если не это, то это будет один из трех методов, которые reloadData вызывает:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;

Таблицы просто отображают данные.Если таблица дублируется, то вы, скорее всего, дублируете данные в коде.Вы хотите убедиться, что один из них также не вызывает повторного считывания исходного источника массива и добавления его в MutableArray, который предоставляет данные в таблицу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...