将NSSet作为Core Data中NSManagedObject的一部分

时间:2014-03-19 19:46:55

标签: cocoa core-data nsset

我有一个类,其属性具有许多NSSet值。这些集的内容不存储在Core Data中,而是来自其他来源。它们基本上是唯一的ID字符串。没有必要将Core Data作为单独的实体填充。

但是,据我所知,不可能将NSSet存储为NSManagedObject的属性。我想我需要手动将它序列化为二进制数据,无论何时存储对象,并在从持久存储中检索它时对其进行反序列化?这同样适用于存储其他集合类。

有没有其他人遇到过这个问题,能否提出一些建议?

2 个答案:

答案 0 :(得分:1)

您可以将属性类型设置为“可转换”,然后将该集直接存储到属性中。确保集合中的所有内容都符合< NSCoding >

答案 1 :(得分:0)

在Xcode中,在Project Navigator中打开模型编辑器的project_name.xcdatamodeld源,并选择有问题的实体。在Xcode菜单栏中选择Editor,并有一个Create NSManagedObject子类... item。创建子类并将其用于额外的非Core Data属性。子类成为模型的一部分来代替实体。它保留了所有实体的行为。