将集合保存到核心数据中

Saving a Set into Core Data

您好,我目前正在尝试在之前使用 NSCoding 后在我的项目中设置核心数据。

我遇到无法将 Set 保存到 Core Data 中的问题。我已经寻找了几天将其转换为 Swift 中的二进制数据并保存的方法,但我似乎找不到任何东西。

该集合包含我制作的自定义对象的元素。

PS: 如果可能的话,如何将泛型保存到 Core Data 中?

Swift 集被桥接到基础 class NSSet,并且 NSSet 符合 NSCoding 协议。这意味着如果您

您可以将集合保存为托管对象的属性
  1. 将集合视为 NSSet(如果还不是一个,使用 mySet as NSSet
  2. 在集合中的自定义对象上采用 NSCoding
  3. 将 Core Data 属性设为类型 "transformable"

如果您执行了所有这些操作,Core Data 将自动对该集合调用 NSCoding 方法,这些方法将依次对您的自定义对象调用相同的方法。您只需将集合分配给属性,Core Data 将完成剩下的工作。