У меня есть класс контроллера 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];
Вот код инициализации для КОП:
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:managedObjectContext sectionNameKeyPath:@"location" cacheName:@"List"];
Когда я хочу, чтобы добавить новый объект «пациент» - я нажимаю кнопку добавить который затем подталкивает контроллер «добавить нового пациента» в стек навигационной системы.
Первый пациент, которого я добавляю, отлично работает.
Если добавить второй пациента - приложение будет иногда врезаться со следующей ошибкой:
2010-03-22 14:42:05.270 Patients[1126:207] Serious application error. Exception was caught during Core Data change processing: * -[NSCFArray insertObject:atIndex:]: index (1) beyond bounds (1) with userInfo (null) 2010-03-22 14:42:05.272 Patients[1126:207] * Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[NSCFArray insertObject:atIndex:]: index (1) beyond bounds (1)'
Это только кажется, что произойдет, если пациент добавило местоположение (если ничего не добавлено, то по умолчанию расположения к 'неизвестный'). Похоже, что это связано с сортировкой местоположения. Например, если первая позиция пациента = палата 14 и вторая = палата 9, то она автоматически завершается с ошибкой.
Мне интересно, как это связано с тем, как я запрашиваю у получателя результатов сортировку имен разделов?
Эта ошибка меня заводит, и я просто не могу понять это. Любая помощь будет принята с благодарностью!
Это решило мою проблему! –
Это все еще необходимо в iOS 8? – SAHM