我的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或一般的自定义数据类型?这是否需要实现编码器/解码器?
谢谢你, 诺贝特
答案 0 :(得分:2)
首先需要将图像序列化为NSData(或CFData)实例。查看CGImageDestinationCreateWithData来执行此操作。
答案 1 :(得分:0)
在this answer中,我提供了NSValueTransformer的代码,可以将UIImages保存到Core Data中的可转换属性中。您可以在上下文中为绘制的图像执行类似的操作。如果需要保留矢量元素,可以绘制到PDF上下文并保存该表示的数据。