У меня есть сгруппированный UITableView в моем классе UIViewController, и я обнаруживаю, что время от времени ячейка в удаленном виде не равна нулю, как ожидалось.
В таблице есть 3 раздела для начала, и, как только'viewDidLoad' вызывается, инициируется серверный вызов, чтобы выяснить, есть ли еще разделы.Еще до того, как представление будет обработано, приходит ответ сервера, и нам говорят, что у нас есть 4 раздела.Чтобы справиться с этим изменением, я делаю:
[self.tableview beginUpdates]
// Do the updating of the array that holds table data
[self.tableview endUpdates]
[self.tableview reloadData];
Затем я получаю вызов 'numberOfSectionsInTableView', для которого я возвращаю 4, затем 'numberOfRowsInSection', и я возвращаю ожидаемое правильное количество строк.Обратите внимание, что это первый раз, когда я получаю любой из этих вызовов, так как перезагрузка таблицы произошла так быстро и еще до того, как представление было визуализировано.
На данный момент видны только данные из первых 3-х разделов ипрокрутите для просмотра последнего раздела.Когда вы прокручиваете, чтобы увидеть последний раздел, я ожидаю, что одна из ячеек в вызове tableView: cellForRowAtIndexPath не равна нулю.Тип ячейки - это то, что использовалось для другого раздела (у меня есть один тип UITableViewCell для первых двух секций и другой для последних двух секций, которые я создаю и возвращаю в cellForRowAtIndexPath, когда ячейка равна nil).
Так как же UITableView выясняет, какую ячейку удалять из очереди, и как мне выяснить, почему эта ячейка для этого конкретного раздела / строки не равна нулю, когда она действительно должна быть?