У меня есть класс контроллера TableView, который использует полученный контроллер результатов для отображения списка «пациентов», взятых из модели Core Data. Разделы этой таблицы взяты из атрибута пациента, называемого «местоположение». Вот дескриптор сортировки для запроса на выборку:
NSSortDescriptor *locationDescriptor = [[NSSortDescriptor alloc] initWithKey:@"location" ascending:YES];
NSSortDescriptor *lastNameDescriptor = [[NSSortDescriptor alloc] initWithKey:@"lastName" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:locationDescriptor, lastNameDescriptor, nil];
Вот код инициализации FRC:
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:managedObjectContext sectionNameKeyPath:@"location" cacheName:@"List"];
Когда я хочу добавить новую сущность «пациент» - я нажимаю кнопку добавления, которая затем подталкивает контроллер представления «добавить нового пациента» в стек навигации.
Первый пациент, которого я добавляю, работает нормально.
Если я добавлю второго пациента - приложение иногда вылетает со следующей ошибкой:
2010-03-22 14: 42: 05.270 Пациенты [1126: 207] Серьезная ошибка приложения. Исключение было обнаружено во время обработки изменения основных данных: * - [NSCFArray insertObject: atIndex:]: index (1) за пределами границ (1) с userInfo (null) 2010-03-22 14: 42: 05.272 Пациенты [1126: 207] * Завершение работы приложения из-за неперехваченного исключения «NSRangeException», причина: «*** - [NSCFArray insertObject: atIndex:]: index (1) за пределами (1)»
Это происходит только в том случае, если у пациента добавлено местоположение (если ничего не добавлено, то по умолчанию используется «неизвестно»). Похоже, это тоже как-то связано с сортировкой локации. Например, если первое место пациента = палата 14, а второе = палата 9, то он обязательно выйдет из строя.
Мне интересно, связано ли это с тем, как я прошу контроллер извлеченных результатов отсортировать имена разделов?
Эта ошибка сводит меня с ума, и я просто не могу в этом разобраться. Любая помощь будет принята с благодарностью!