У меня есть UITableView
, который содержит набор элементов, статус которых я получаю из веб-приложения каждый раз, когда таблица загружается с помощью метода refreshRows
.После этого я перезагружаю таблицу.
Когда я добавил элемент в свою таблицу, я обнаружил, что получаю сообщение «Неверное обновление: недопустимое количество строк в разделе».Перезагрузка данных в таблице оказалась необходимой, поэтому я сделал переход от старого к новому viewDidAppear
методам (оба показаны ниже).Теперь у меня два reloadData
звонка, которые оба освежают мой взгляд.
ВОПРОС: Есть ли более чистый способ сделать это?После добавления мне нужно перезагрузить мои данные, но я бы предпочел не перезагружать представление, пока не будут получены все статусы из Интернета.
- (void)viewDidAppear:(BOOL)animated // new
{
NSLog(@"viewDidAppear");
[super viewDidAppear:animated];
[self.tableView reloadData]; // <------------- Prettier way to do this?
[self refreshRows];
[self.tableView reloadData];
}
- (void)viewDidAppear:(BOOL)animated // old
{
NSLog(@"viewDidAppear");
[super viewDidAppear:animated];
[self refreshRows];
[self.tableView reloadData];
}
- (void)refreshRows {
// foreach row get status from webapp
}
РЕДАКТИРОВАТЬ:
Вот запрошенныйкод:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
id <NSFetchedResultsSectionInfo> sectionInfo =
[[self.fetchedResultsController sections] objectAtIndex:section];
return [sectionInfo numberOfObjects];
}