Я начал использовать 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];
}
. У меня проблема в том, что каждый раз, когда я немного изменяю свою модель данных.xc, я не могу получить весь контент, ранее хранившийся в документе, а также для создания любого нового экземпляра. На самом деле это приводит к следующему исключению:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'This NSPersistentStoreCoordinator has no persistent stores. It cannot perform a save operation.'
Я думал, что установка свойства "options" управляемого документа решила бы проблему, но, видимо, этого недостаточно. Кто-нибудь может помочь? Не удалось найти другие вопросы, которые действительно соответствуют моим точным потребностям.