У меня есть пара UIViewControllers, которые отображают табличное представление моих объектов «Пользователь» в качестве раздела и объекты «Сайт» в виде строк в каждом разделе. Отношения между сайтом и пользователем: один-ко-многим.
В данный момент я показываю эти данные со следующим кодом:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
id <NSFetchedResultsSectionInfo> sectionInfo = [[self.fetchedResultsController sections] objectAtIndex:0];
return [sectionInfo numberOfObjects];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
User *sectionUser = (User*)[self.fetchedResultsController objectAtIndexPath:[NSIndexPath indexPathForRow:section inSection:0]];
return [[sectionUser.sitesToUser allObjects] count];
}
В моем NSFetchResultsController я просто перетаскиваю все объекты пользователя, ничего особенного.
Теперь моя проблема - всякий раз, когда я обновляю результаты, удаляя раздел (то есть пользователя) или добавляя пользователя, пока это представление также открыто, я получаю ошибку делегата NSFetchedResultsController:
Serious application error. An exception was caught from the delegate of
NSFetchedResultsController during a call to -controllerDidChangeContent:. Invalid
update: invalid number of sections. The number of sections contained in the table
view after the update (2) must be equal to the number of sections contained in the
table view before the update (1), plus or minus the number of sections inserted or
deleted (0 inserted, 0 deleted). with userInfo (null)
Я получаю его только в тех представлениях, где я отображаю свои данные таким образом, это раздел «Пользователь», а «Сайты / и» - строки под каждым разделом.
Я делаю что-то действительно глупое? Я думал, что это будет просто удалить раздел, когда я удаляю его и т. Д ... Кажется, работает нормально, если каждый пользователь является строкой в UITableView - что я считаю, суть моей проблемы ...