核心数据,关系消失

时间:2014-12-05 13:38:46

标签: ios core-data

我在数据库中有两个实体,Category和Subcategory。类别可以有多个子类别。关系定义如下:

类别 - >子类别(to-many,has inverse,cascade)

子类别 - >类别(to-one,has inverse,nullify)

一切正常但有时Category->子类别关系为空,Subcategory->类别没问题,这很奇怪。这很少发生,我无法弄清楚原因。

以下是来自控制台的日志,其中可以看到类别实例具有空的子类别关系,但数据库中的一个子类别具有与其关系相同的类别实例。

我不明白关系的一端是如何为空而其他正常,因为当设置任何一端时它们会自动连接。


Category: 0x7b6f8020> (entity: Category; id: 0x7b6f6d40 x-coredata://021C3D9A-7A0C-4326-B526-9E9253611C44/Category/p8> ; data: {
    … other data
    subcategories =     (
    );
})

Subcategory: 0x7c8f7770> (entity: Subcategory; id: 0x7c8c91b0 x-coredata://021C3D9A-7A0C-4326-B526-9E9253611C44/Subcategory/p5> ; data: {
    … other data
    category = "0x7b6f6d40 x-coredata://021C3D9A-7A0C-4326-B526-9E9253611C44/Category/p8>";
})

1 个答案:

答案 0 :(得分:0)

您使用refreshObject:mergeChanges:吗?该文档似乎表明这可能导致诸如你的问题:

您可以使用refreshObject:mergeChanges:方法将已实现的对象转换为错误。如果传递NO作为mergeChanges参数,则必须确保该对象的关系没有更改。如果有,然后保存上下文,则会向持久性存储中引入参照完整性问题。

请参阅Apple文档here