如何获取核心数据中关系的关系?

Posted

技术标签:

【中文标题】如何获取核心数据中关系的关系?【英文标题】:How do I fetch a relationship of a relationship in core data? 【发布时间】:2019-07-19 06:49:16 【问题描述】:

我有 3 个实体:

建筑、楼层和房间

关系如下:

建筑 -> 楼层 -> 房间

Building -> Floors 是一对多关系 楼层 -> 房间是一对多的关系

我将如何获取房间内的数据?

我知道如何使用下面的谓词代码获取 Building -> Floors,但我该如何更进一步并获取 Rooms 的数据?

让 fetchFloorPredicate = NSPredicate(格式: "buildingOfFloor.buildingName == %@", buildingName)

【问题讨论】:

【参考方案1】:

您不使用谓词来获取关系,关系也是您实体中的一个属性,与您在 Xcode 中命名关系的名称相同。

因此,如果您有一个 Building 对象 building 并且与 Floors 的关系被命名为 floors,那么您将获得属于建筑物的所有 Floors 对象

let floors = building.floors

或者如果你想要它作为一个数组而不是一个集合

let floors = Array(building.floors)

如果我们假设关系的名称是房间,那么房间也是如此

let rooms = floor.rooms

【讨论】:

以上是关于如何获取核心数据中关系的关系?的主要内容,如果未能解决你的问题,请参考以下文章

Spring JPA中关系的动态获取

Coredata / SWIFT 获取有关系的记录

核心数据获取谓词“不包含”?

Laravel中关系的条件

如何覆盖 Grails GORM 中关系的级联删除?

如何使用vb.net 2019从访问数据库中关系的另一个列表中查看特定列的所有数据主表