【问题标题】:Core Data: How do I store a CGImageRef or custom data types?核心数据:如何存储 CGImageRef 或自定义数据类型?
【发布时间】:2011-01-07 06:36:15
【问题描述】:

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

这是一个代码sn-p:

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 或一般的自定义数据类型?这需要实现编码器/解码器吗?

谢谢你, 诺伯特

【问题讨论】:

    标签: iphone core-data types


    【解决方案1】:

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

    【讨论】:

    • 还有UIImageJPEGRepresentation和UIImagePNGRepresentation`的便捷方法可以使用。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-11
      • 2014-08-18
      • 1970-01-01
      • 2019-03-18
      • 2015-11-10
      • 2012-03-13
      • 2013-03-30
      相关资源
      最近更新 更多