我正在使用一个使用UIManagedDocument
子类的iPhone应用程序,并将其文档存储在iCloud上。
在我更改核心数据模型/方案(添加新的模型版本 - 就像过去几周我曾多次)之前,一切正常。 我添加了一个新属性并更改了其中一个现有属性的数据类型。
现在,当我运行我的应用时,我似乎无法使用UIManagedDocument
的{{1}}加载我的文档。
我可以创建新文档并读/写。
如果我将数据模型版本改回1,那么我可以阅读现有文档,但不能阅读新文档。
根据我的理解,我只对数据模型进行轻量级迁移,-openWithCompletionHandler:
应该处理这个权限吗?
非常感谢任何建议!
答案 0 :(得分:7)
以下是基于我的理解:
注意 - 我没有尝试过iCloud,但是我已经测试了非icloud并且看起来没问题。
UIManagedDocument
自行配置managedObjectModel
和持久存储协调员
当需要完成迁移时,只需设置UIManagedDocument
的{{1}}
persistentStoreOptions
<强>参见:强>
答案 1 :(得分:2)
在UIManagedDocument的子类中,您可能希望尝试覆盖managedObjectModel,如下所示:
- (NSManagedObjectModel *)managedObjectModel
{
NSString *path = [[NSBundle mainBundle] pathForResource:@"<ModelNameHere>" ofType:@"momd"];
NSURL *momURL = [NSURL fileURLWithPath:path];
NSManagedObjectModel *managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:momURL];
return managedObjectModel;
}