2010-01-09 30 views
1

我有两个不同的NSManagedObjectContexts引用同一个NSPersistentStoreCoordinator,例如context1和context2。从另一个NSManagedObjectContext获取NSManagedObject(引用相同的NSPersistentStoreCoordinator)

我有一个NSManagedObject out of context1。由于我想编辑它,不知道它是否会在之后保存,我想从context2中获取该对象。在我不想保存NSManagedObject的情况下,Context2可能会被丢弃。如果保存,我会在context1中合并context2。

但是,如何从context2获取对象?有没有一种简单的方法来做到这一点,或者我必须用谓词xyz = [NSManagedObject objectId]来请求对象?在这种情况下xyz必须是什么?

回答

0

您可以指定目标的NSManagedObjectContext,即

NSFetchRequest *request = [[NSFetchRequest alloc] init]; 
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"MyEntity" inManagedObjectContext:managedObjectContext]; 
    [request setEntity:entity]; 
    myArray = [[managedObjectContext executeFetchRequest:request error:&error] mutableCopy]; 

除了您的评论:

context2object = [myEntityArrayFromContext2 objectAtIndex:[myEntityArrayFromContext1 indexOfObject:context1object]]; 
+0

权。这就是我从context1获取托管对象的过程。但是现在用户决定编辑该对象。这就是为什么我需要context2中的同一个对象的原因。那么,我怎么得到这个?通过objectID? – Shingoo 2010-01-09 11:01:55

+0

through entityForName: – 2010-01-09 11:03:09

+0

我不确定你是否知道我的意思;) 我使用上面的代码获取了所有对象。 它返回了一个包含5个“MyEntity”类型对象的数组。 迄今为止清除。 现在我拿出例如数组中的第三个元素。这个元素当然是类“MyEntity”的对象。 现在我的问题,我试图问obove: 如何获得第三个类的类型“MyEntity”的对象context2以外?或者更一般的:我如何将现有的NSManagedObject关联到另一个上下文? – Shingoo 2010-01-09 11:17:54

相关问题