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

Rya*_*ton 1 core-data objective-c

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

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

    NSError* error = nil;

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

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

用于打开存储的模型配置与用于创建存储的模型配置不兼容.

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

Lil*_*ard 5

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