Я начал использовать CoreData в своем приложении после уроков Stanford CS193P, касающихся использования нового класса iOS 5 UIManagedDocument.Сам подход довольно прост, но я не могу понять, как бороться с модификациями моделей, которые я продолжаю делать.Вот как я создаю экземпляр своего объекта UIManagedDocument (внутри appDelegate, чтобы его могли использовать все остальные классы):
if (!self.database) {
NSURL *url=[[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
url = [url URLByAppendingPathComponent:@"AppName"];
UIManagedDocument *doc = [[UIManagedDocument alloc] initWithFileURL:url];
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
[NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];
doc.persistentStoreOptions = options;
self.database=doc;
[doc release];
}
Проблема, с которой я сталкиваюсь, заключается в том, что каждый раз, когда я изменяю хоть немного своего .xcdatamodelЯ не могу получить все содержимое, ранее сохраненное в документе, а также создать новый экземпляр.Фактически, это создает следующее исключение:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'This NSPersistentStoreCoordinator has no persistent stores. It cannot perform a save operation.'
Я думал, что установка свойства «options» управляемого документа решит проблему, но, по-видимому, этого недостаточно.Кто-нибудь может помочь?Не могу найти другие вопросы, которые действительно соответствуют моим точным потребностям.