【问题标题】:Can I use a custom class for holding data of an attribute in Core Data?我可以使用自定义类来保存 Core Data 中属性的数据吗?
【发布时间】:2011-01-06 01:16:35
【问题描述】:

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

但这里缺少的是:MyColor 持久化怎么样?当我这样做时,我必须在-setAttributeType: 中提供什么?没有像“自定义类”这样的类型。

Core Data 会序列化 MyColor 并以某种方式将其存储在 String 数据类型中吗?它是如何工作的?

编辑:这与价值转换器有什么关系吗?

【问题讨论】:

    标签: iphone core-data


    【解决方案1】:

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

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

    iPhone OS 3.0 Core Data 与 Snow Leopard 时代的 Core Data 类似,所以上述说法同样适用。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-02
      • 1970-01-01
      相关资源
      最近更新 更多