我使用MOGenerator生成了3个实体,我希望能够从objectID
我试过了:
- (void)aMethod: (SpecialEntity1ID *)entityID
{
//This is a method from MagicalRecord but it doesn't matter(I think...).
NSManagedObjectContext *context = [NSManagedObjectContext MR_contextWithParent:[NSManagedObjectContext MR_defaultContext]];
SpecialEntity1 *entity1 = [context objectRegisteredForID:entityID]
//But this returns an NSManagedObject so it doesn't work...
}
有人可以帮助我用它的ID获取此对象吗?
由于我不知道如何使用ID来解决这个问题,我正在使用NSString
作为参数而不是SecialEntity1ID
来定义其中一个属性的方法此对象(并且是唯一的)并获取对象。
我认为回复他的ID更好,所以任何想法?
答案 0 :(得分:2)
如果您100%确定它将是什么,您希望使用NSManagedObjectContext的existingObjectWithID:error:
方法并对返回类型进行类型转换。我保持它是通用的,即让它返回一个NSManagedObject,然后在其他地方测试它的类,如果你想确定它是否属于一个特定的类。
- (Object*)retrieveObjectWithID:(ObjectID*)theID
{
NSError *error = nil;
Object *theObject = (Object*)[[NSManagedObjectContext contextForCurrentThread] existingObjectWithID:theID error:&error];
if (error)
NSLog (@"Error retrieving object with ID %@: %@", theID, error);
return theObject;
}