1
我在Parent Child NSManagedObjectContext中遇到了一些麻烦。 问题是我想在我的EventsPlanner类中使用一个NSManagedObjectContext子类来创建一个随机事件。如果你注意到它的作品,如果你直接保存到NSManagedObjectContext,但我想使用该子代并更新到父代。父/子NSManagedObjectContext不工作
如果您看到按'+'按钮添加一个新事件,但它看起来是空的。
我添加了示例项目 - >https://dl.dropbox.com/u/63377498/ParentChildExperiment.zip
创建孩子的NSManagedObjectContext:
- (NSManagedObjectContext *)managedObjectContext
{
if (_managedObjectContext != nil) {
return _managedObjectContext;
}
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
_managedObjectContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType];
[_managedObjectContext setUndoManager:nil];
[_managedObjectContext setParentContext:appDelegate.managedObjectContext];
return _managedObjectContext;
}
保存:
Event *event = [[Event alloc] initWithEntity:self.eventEntity insertIntoManagedObjectContext:nil];
event.title = ...;
event.location = ...;
event.timeStamp = ...;
[self.managedObjectContext insertObject:event];
[self.managedObjectContext performBlock:^{
NSError *childError = nil;
if ([self.managedObjectContext save:&childError]) {
[self.managedObjectContext.parentContext performBlock:^{
NSError *parentError = nil;
if (![self.managedObjectContext.parentContext save:&parentError]) {
NSLog(@"parent error: %@", [parentError description]);
abort();
}
}];
} else {
NSLog(@"child error: %@", [childError description]);
abort();
}}];
谢谢!
该死的,这实际上有帮助。但作为一项规则,我通常不会在检查里面的所有信息是否正确之前添加NSManagedObject。让我们看看它是如何发展的。顺便说一句,谢谢! – 3lvis
我认为这是NSManagedObjectContext中的一个错误,我需要填写一个错误报告。谢谢! – 3lvis