【问题标题】:Core Data does not save one-to-many relationshipCore Data 不保存一对多关系
【发布时间】:2014-02-26 09:56:40
【问题描述】:

我有两个实体,Document 和 Attachment。一个文档可以有很多附件。附件可以属于单个文档。

由于某种原因,当我执行以下操作时,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 来设置双向关系。我做错了什么?

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

附件

  • 瞬态:否
  • 可选:是
  • 目的地:附件
  • 逆向:文档
  • 删除规则:级联
  • 类型:对许多人
  • 已订购:否

文档

  • 瞬态:否
  • 可选:是
  • 目标:文档
  • 逆向:附件
  • 删除规则:无效
  • 类型:给一个

也试过了

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

同样的结果。

【问题讨论】:

  • 我遇到了同样的问题。您是否曾经找到解决方案?

标签: ios macos core-data


【解决方案1】:

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

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

你能发布一些代码吗?

【讨论】:

  • 谢谢@aniruddhc。我没有覆盖willChangeValueForKey:withSetMutation:inMutationKind:usingObjects: 或didChangeValueForKey:withSetMutation:inMutationKind:usingObjects:。代码的哪一部分有用?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-27
相关资源
最近更新 更多