objective-c - CoreData - 一对多建模关系以一对一形式出现

标签 objective-c ios core-data one-to-many

我是 Core Data 建模的新手,我很难理解一对多关系的工作原理。

我有一个名为 Task 的父实体,它可以有多个 Comment 实体实例。我这样建模:在 Comments 上,与 Task 的关系称为 taskTask 实体是目的地。在 Task 上,一个名为 comments 的关系,以 Comment 作为它的目的地,并且这两个关系是彼此相反的。

不定义逆函数会导致警告或错误消息。在以这种方式建模时,我注意到一旦我为给定的 Task 创建了第二个评论,第一个就会被替换(一对一关系)。

告诉核心数据模型这种关系允许在一个 Task 中进行许多评论的正确方法是什么?

此外,由于 CoreData 似乎自行管理主键,我该如何创建一个 NSPredicate 来检索给定任务的所有评论?

感谢您的任何建议!

最佳答案

首先你需要设置plural Task 中的选项实体,在您的 .xdatamodeled 中选择它并选择 relationship Task的属性(property)实体到comments你应该能够看到这个 enter image description here

有一个plural选项一定要检查出来。您必须重新创建 NSManagedObject如果您使用生成的类,并且如果您使用 sqlite 存储,则必须删除并重建,这样它就不会提示新架构与旧架构不同。

要检查您是否有一对多关系,您的 Task实体应该有一个名为 comments 的属性,它是 NSSet 的类类型不是评论。

如果您想检索给定任务的所有评论,您需要迭代 NSSet(comments)该任务的属性。

关于objective-c - CoreData - 一对多建模关系以一对一形式出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8280777/

相关文章:

带有自定义 url 方案的 iOS 9 safari iframe src 不起作用

ios - 为什么我的委托(delegate)变为零?

objective-c - 100000 个对象 : How to autocomplete in an NSTextField fast

ios - 如何检查 Playground 的 swift 版本?

ios - 在 Facebook 聊天中发送照片

ios - RestKit .20.x 值转换

ios - 如何清除/清零用于通过串行端口接收字符的 NSMutableString?

objective-c - 我想从左侧滑入一个透明菜单

ios - Google map SDK - 核心数据

objective-c - NSPredicate 与字符串完全匹配