核心数据:如何存储CGImageRef或自定义数据类型?

时间:2010-01-20 13:13:41

标签: iphone core-data types

我的iPhone应用程序应该使用Core Data功能持久存储一些数据。

以下是代码段:

NSManagedObject *entity = [NSEntityDescription insertNewObjectForEntityForName:@"anEntity" inManagedObjectContext:self.managedObjectContext];

// ...
CGContextRef context;
// ...
[entity setContext:context];
NSError *error;
[self.managedObjectContext save:&error];
// ...

我的数据模型将 context 的类型定义为“可转换”。这是正确的吗? 在构建时,我收到以下警告:

  

警告:从不兼容的指针类型

传递'setContext:'的参数1

如何使用Core Data存储CGContextRef或一般的自定义数据类型?这是否需要实现编码器/解码器?

谢谢你, 诺贝特

2 个答案:

答案 0 :(得分:2)

首先需要将图像序列化为NSData(或CFData)实例。查看CGImageDestinationCreateWithData来执行此操作。

答案 1 :(得分:0)

this answer中,我提供了NSValueTransformer的代码,可以将UIImages保存到Core Data中的可转换属性中。您可以在上下文中为绘制的图像执行类似的操作。如果需要保留矢量元素,可以绘制到PDF上下文并保存该表示的数据。