Сбой NSPersistentDocument при создании постоянного хранилища

Недавно я добавил новую сущность в свою модель Core Data, поэтому я создал новую версию для модели и модель сопоставления для нее. Однако теперь мой NSPersistentDocument вылетает без видимой причины:

NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption, 
                                                                        [NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];

BOOL success = [self configurePersistentStoreCoordinatorForURL:storeURL ofType:typeName modelConfiguration:nil storeOptions:options error:error]; // Line that crashes

Журналы консоли:

*** - [NSCFArray insertObject: atIndex:]: попытка вставить ноль

Вот трассировка стека, если это помогает:Трассировки стека

Удаление модели отображения не помогает, поэтому я думаю, что это потому, что документ пытается загрузить неправильную модель данных / нет, но я не нашел способа сказать, что она должна использовать данную модель данных.

Изменить: Когда я использую свой собственный класс абстракции Core Data для iOS, все в порядке. Таким образом, корень всего зла, кажется, NSPersistentDocument, На самом деле я не хочу переключаться обратно на NSDocument, и мне придется снова самому обрабатывать Core Data, поэтому любая помощь действительно приветствуется!

2 ответа

Решение

Вы, вероятно, внесли изменения в модель, которую не может обработать автоматическая или "выведенная" миграция. Вам, вероятно, придется предоставить модель сопоставления, чтобы подробно описать, как следует выполнять миграцию.

Да, и убедитесь, что ваши старые и новые модели имеют версии, т.е. имеют номер версии. Если нет, автоматическая миграция не может определить, какая модель является старой, а какая новой.

Хорошо, я заработал, переписав - (id)managedObjectModel и возвращаю действительную управляемую объектную модель самостоятельно. Похоже NSPersistentDocument не может сделать это самостоятельно для моделей с несколькими версиями.

Другие вопросы по тегам