ios - CoreData如何指向一个实体?

标签 ios core-data

我有两个实体。

第一实体 A 和第二实体 B。

A 包含许多 B 实体。

我将 B 实体添加为 NSSet。

我的问题是,当我将 B 实体添加到 A 对象时,如果它已经附加到另一个 A 对象,它也会从另一个 A 对象中删除。

我只想指向这个 B 对象。

例如,每次将 B 对象添加到每个 A 对象时,我都会添加两个 A 对象。

但是如果我已经将 B 对象添加到第一个 A 对象,然后我想将其添加到第二个 A 对象,则 B 对象将与第一个对象分离。但我想在两个 A 对象中保存此 B 对象上的链接。

最佳答案

当您应该建立多对多关系时,您似乎创建了一对多关系。对于多对多,您的 categoryId 将有一组 Artist 对象,就像您的艺术家有一组 categoryIds 一样。如果您将 categoryId 添加到艺术家,该艺术家将被添加到 categoryId 上的 artists 或 artistsSet 属性。因此 categoryId 不限于只有一位艺术家,并且您不会替换之前分配的艺术家。它们都将出现在 categoryId.artists 中(或您为关系命名的任何名称)。

关于ios - CoreData如何指向一个实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20155625/

相关文章:

objective-c - 如果我在一对多关系中添加相同的 NSManagedObject 几次会发生什么?

ios - 索引 NSFetchedResultsController

swift - 在 cellForRowAt 中显示正确的信息

iOS 9、10 核心数据 : Failed to load optimized model at path

ios - 如何将符合具有关联类型的协议(protocol)的不同类型添加到集合中?

ios - 如何使用 Autolayout 为通用应用程序调整 UIView 的大小

ios - 使用 j2objc 将原始数据类型从 Java 映射到 Objective-C

ios - 如何在展开 subview 时在 TableView 单元格中添加 subview 并对 subview 的元素执行操作?

ios - 数据核心 order by with when case

ios - 在文本字段中输入字符串时键盘不可见