【发布时间】:2013-03-15 11:41:03
【问题描述】:
如何创建一个NSManagedObjectContext,它有一个在不同队列/线程上运行的非nil parentContext?
UIManagedDocument 的 managedObjectContext 确实有这个,但我不知道如何在不使用 UIManagedDocument 的情况下复制它。
这是我正在使用的代码,它会生成一个managedObjectContext,其parentContext 属性是nil。
-(NSManagedObjectContext *)context{
if (_context == nil){
_context = [[NSManagedObjectContext alloc] init];
_context.persistentStoreCoordinator = self.storeCoordinator;
}
return _context;
}
-(NSPersistentStoreCoordinator *) storeCoordinator{
if (_storeCoordinator == nil) {
_storeCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:self.model];
NSError *err = nil;
if (![_storeCoordinator addPersistentStoreWithType:NSSQLiteStoreType
configuration:nil
URL:self.dbURL
options:nil
error:&err ]) {
NSLog(@"Error while adding a Store: %@", err);
return nil;
}
}
return _storeCoordinator;
}
-(NSManagedObjectModel *) model{
if (_model == nil) {
_model = [[NSManagedObjectModel alloc] initWithContentsOfURL:self.modelURL];
}
return _model;
}
【问题讨论】:
-
我刚刚编辑了问题以添加一些代码。
-
您可以将任何 NSManagedObjectContext 的父上下文设置为任何其他 NSManagedObjectContext。 mycontext.parent = parentContext;
标签: objective-c cocoa core-data nsmanagedobjectcontext uimanageddocument