1

我有 3 个使用 MOGenerator 生成的实体,我希望能够从他们的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 来解决它,我目前正在通过创建一个以 anNSString作为参数的方法来解决它,而不是SecialEntity1ID定义该对象的一个​​属性(并且是唯一的)并获取该对象。

我认为找回他的身份证更好,所以有什么想法吗?

4

1 回答 1

2

existingObjectWithID:error:如果您 100% 确定返回类型是什么,您想使用NSManagedObjectContext 的方法和类型转换。我会保持它的通用性,即让它返回一个 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;
}
于 2012-11-22T21:30:22.433 回答