Классический случай проблемы секций с NSFetchedResultsController, и я вырываю свои волосы. Я установил sectionNameKeyPath на NIL , который я прочитал, это то, что вы хотите без разделов (т.е. 1 раздел).
Код следующий:
- (NSFetchedResultsController *)fetchedResultsController {
if (_fetchedResultsController != nil) {
return _fetchedResultsController;
}
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription
entityForName:@"MyObjectType" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
NSSortDescriptor *sort = [[NSSortDescriptor alloc]
initWithKey:@"name" ascending:NO];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sort]];
[fetchRequest setFetchBatchSize:20];
NSFetchedResultsController *theFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:managedObjectContext sectionNameKeyPath:nil cacheName:@"accountExpenseTypeCache"];
self.fetchedResultsController = theFetchedResultsController;
_fetchedResultsController.delegate = self;
[sort release];
[fetchRequest release];
[theFetchedResultsController release];
return _fetchedResultsController;
}
Как видите, мой sectionNameKeyPath имеет значение nil и
Иногда, когда я добавляю или удаляю строку, это работает. Чаще всего я получаю это серьезное падение в консоли, хотя при попытке удалить или добавить:
*** Assertion failure in -[UITableView _endCellAnimationsWithContext:], /SourceCache/UIKit_Sim/UIKit-1447.6.4/UITableView.m:955
(gdb) continue
2011-03-14 18:00:58.104 MyApplicationTest[5741:207] 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 (3) must be equal to the number of sections contained in the table view before the update (3), plus or minus the number of sections inserted or deleted (0 inserted, 1 deleted). with userInfo (null)
В чем проблема? Я читал NSFetchedResultsController до 4.0 был создан для обработки пользовательских обновлений? Я могу только предположить, что добавление и удаление строк считаются обновлениями, управляемыми пользователем? Нужно ли реализовывать что-то подобное?
Как реализовать переупорядочение записей CoreData?
?? Из того, что я прочитал, хотя я не понимаю, почему у меня такая проблема, когда у меня ноль для разделов. Почему говорится, что 3 раздела ?!
Заранее спасибо!