调用obtainPermanentIDsForObjects:error:在未保存的文档中

时间:2011-07-07 05:14:32

标签: objective-c core-data

我遇到了一个场景,我需要将核心数据实体的顺序存储在多对多关系中。我打算在关系中使用永久ID对象,但是在未保存(无标题)文档上调用时,以下代码会导致错误。 (我希望实现类似于BWOrderedManagedObject的东西。)

if(!widget)
{
    widget = [[Widget alloc] initWithContext:[delegate managedObjectContext]];

    NSError* error = nil;

    if(![[widget managedObjectContext] obtainPermanentIDsForObjects:[NSArray arrayWithObject:widget] error:&error])
    {
        NSLog(@"%@", error);
    }
}

但是,当调用obtainPermanentIDsForObjects:error:时,会导致以下错误:

  

用于打开商店的模型配置与用于创建商店的模型配置不兼容。

在文档保存之前我是否可以获得永久ID?

1 个答案:

答案 0 :(得分:5)

获取对象的永久ID需要将该对象写出到数据库。从本质上讲,它是以特殊的方式保存对象。它和真正的存储一样昂贵,它绝对需要你在磁盘上存储。