我的应用程序使用CoreData,一个叫模型:mupo-ios.xcdatamodel.此模型是原始模型的第二个版本:Model.xcdatamodeld.我正在使用managedObjectContext通过文件:
NSURL *url = [[[NSFileManager defaultManager] URLsForDirectory:NSLibraryDirectory inDomains:NSUserDomainMask] lastObject];
url = [url URLByAppendingPathComponent:@"MyDocument"];
self.document = [[UIManagedDocument alloc] initWithFileURL:url];
// Set our document up for automatic migrations
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
[NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];
self.document.persistentStoreOptions = options;
}
Run Code Online (Sandbox Code Playgroud)
后来,我访问managedObjectContext:
self.managedObjectContext = self.document.managedObjectContext;
Run Code Online (Sandbox Code Playgroud)
现在,我想直接访问主要上下文,这里是代码:
- (NSManagedObjectContext *)mainContext {
if (!_mainContext) {
_mainContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType];
_mainContext.persistentStoreCoordinator = self.persistentStoreCoordinator;
}
return _mainContext;
}
Run Code Online (Sandbox Code Playgroud)
问题是当我尝试指定managedObjectModel:
- (NSManagedObjectModel *)managedObjectModel {
if (!_managedObjectModel) {
NSString *localModelPath = [[NSBundle mainBundle] pathForResource:@"mupo-ios" ofType:@"momd"];
NSURL *modelUrl = [NSURL fileURLWithPath:localModelPath];
_managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelUrl];
}
return _managedObjectModel;
}
Run Code Online (Sandbox Code Playgroud)
无法找到momd的文件,因此managedObjectModel无法初始化.任何人都可以帮助我吗?
Ben*_*n G 10
在复杂的情况下,我遇到了这个问题.我在一个工作区中有两个xcodeproj.
我尝试在第二个项目中使用相同的xcdatamodeld文件,方法是将其从第一个项目拖到第二个内部xcode中.这正确地创建了引用,但即使将文件添加到"编译资源",也不会创建modm文件.
解决方案是将xcdatamodeld直接从Finder拖放到第二个项目中,而不是从xcode中的第一个项目拖放.
| 归档时间: |
|
| 查看次数: |
1958 次 |
| 最近记录: |