我可以使用自定义类来保存Core Data中属性的数据吗?

时间:2010-01-17 11:34:08

标签: iphone core-data

Apple is giving the example,我可以创建一个MyColor类来保存颜色数据,并通过调用-setAttributeValueClassName:方法将它与NSAttributeDescription对象一起使用。

但是缺少的是:MyColor如何持续存在?当我这样做时,我必须在-setAttributeType:中提供什么?没有像“自定义类”这样的类型或类似的东西。

Core Data是否只是序列化MyColor并以某种方式将其存储在String数据类型中?这有什么作用?

编辑:这是否必须对价值变换器做任何事情?

1 个答案:

答案 0 :(得分:3)

如果您阅读相同的文档,您会看到他们建议使用自定义类的可转换属性:

  

注意:对象值的示例   使用NSColor的一个实例;如果你   你应该使用Mac OS X v10.5   通常使用可变形的   属性改为。

iPhone OS 3.0核心数据与Snow Leopard时代核心数据类似,因此上述声明也适用于此。

您需要创建一个NSValueTransformer,它将您的自定义类型转换为Core Data可以处理的类型,例如NSData。 This CocoaDev wiki page链接到NSValueTransformer的一些示例。我提供了一些代码,用于将UIImages转换为this answer中的PNG数据。