swift - 如何与核心数据建立多对多关系? swift ,xcode

标签 swift core-data entity relationship

我有 2 个实体。

实体 1 - 人 实体 2 - 书籍

People 实体有一个属性,该属性是他们最喜欢的书的字符串名称数组。

我需要创建一种关系,以某种方式将一个人最喜欢的书映射到相应的书实体对象。

我不知道该怎么做。

到目前为止,我已经开始通过将目的地设置为“书”来在核心数据模型中为人们创建关系,然后通过将目的地设置为“人”来为书籍实体创建关系。

我不明白或不明白这将如何自动挑选出每个人最喜欢的书……归根结底,它们都是独立的对象。 people 类如何知道对于特定的人来说,这本书和这本书是那个人的最爱?

最佳答案

Person 属性作为书籍字符串名称的数组——非常糟糕的主意!

您需要与 Book 实体建立一对多关系。就是这样。

 Person <------------>> Book

然后,获取特定人物的一系列书名:

(person.books as! Set<Book>).map { $0.title }

此人可以与其中一本书建立额外的一对一关系(例如称为 favoriteBook)。

关于swift - 如何与核心数据建立多对多关系? swift ,xcode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36110240/

相关文章:

ios - Swift 全文搜索推荐解决方案

ios - 我应该选择可选项还是隐式解包的可选项

ios - 核心数据 : Custom attribute accessor not accessed the first time NSManagedObject is loaded

swift - 使用 UIBezierPath 获取 "invalid context"错误

ios - 我无法根据与谓词的关系从核心数据中获取实体

ios - 为什么我们在 fetchRequest() 声明之前放置 @nonobjc 属性?

java - 如何在运行时检索 JPA 中实体的映射表名称?

c++ - dynamic_cast 返回空指针

php - 如何使用来自非托管实体的数据正确更新托管实体?

ios - swift:长按手势识别器不起作用