核心数据不保存一对多关系

时间:2014-02-03 01:24:03

标签: ios macos core-data

我有两个实体DocumentAttachment。文档可以包含许多附件。附件可以属于单个文档。

出于某种原因,当我执行以下操作时,Core Data不会保存文档与其附件之间的关系:

[document addAttachments:attachments];
[context save:&error];
[context reset];

如果我在执行上述代码后获取文档,其附件将为空。然而,附件被保存了。

如果我手动设置反向关系,则保存 关系:

[document addAttachments:attachments];
for (Attachment *attachment in attachment)
{
    attachment.document = document;
}
[context save:&error];
[context reset];

我认为没有必要与Core Data建立双向关系。我做错了什么?

如果有帮助,关系定义如下:

附件

  • 瞬态:否
  • 可选:是
  • 目的地:附件
  • 反向:文档
  • 删除规则:级联
  • 类型:To Many
  • 订购:否

文档

  • 瞬态:否
  • 可选:是
  • 目的地:文件
  • 反向:附件
  • 删除规则:Nullify
  • 类型:To One

也试过了

  • 使用mutableSetValueForKey:代替生成的访问者。
  • 逐个添加附件。
  • 保留attachments数组,以防万一。

同样的结果。

1 个答案:

答案 0 :(得分:0)

这应该有效。也许这两个答案可能会有所帮助Core Data Inverse Relationship Not Being Set

How to get at a relationship items properties in Core Data?

你可以发布一些代码吗?