【问题标题】:Custom Core Data entities自定义核心数据实体
【发布时间】:2011-05-14 17:32:54
【问题描述】:

如何创建一个包含自定义对象的核心数据实体?

例如有可能持有的实体,例如图像、音频剪辑、自定义哥斯拉对象。

这些是如何保存和加载的?使用 NSData?

【问题讨论】:

  • 查看这个问题的第一个答案:Question

标签: iphone objective-c core-data


【解决方案1】:

最好的方法是使用“可转换”属性。有关更多信息,请参阅此处的核心数据文档:

Non-Standard Persistent Attributes

【讨论】:

    【解决方案2】:

    如果自定义类符合 NSCoding 协议,您可以使用Transformable Attributes。苹果章节Non-Standard Persistent Attributes pf Core Data Programming Guide的简短引用:

    可变形背后的理念 属性是你访问一个 属性作为非标准类型,但是 在幕后,Core Data 使用了 NSValueTransformer 的实例到 将属性转换为 NSData 的实例。核心数据然后 将数据实例存储到 持久存储。

    【讨论】:

      【解决方案3】:

      是的,你可以使用 NSData 来做到这一点

      例如将 UIImage 转换为 NSData

      UIImage *img = [UIImage imageNamed:@"some.png"];
      
      NSData *dataObj = UIImageJPEGRepresentation(img, 1.0);
      

      然后你可以将它保存在目录中使用

      [dataObj writeToFile:fileName atomically:YES];
      

      这里fileName是目录中文件的路径

      【讨论】:

      • 但是在 NSData 上使用 writeToFile 不会将其存储到 NSManagedObject 或核心数据实体中,就像被问到的那样
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-30
      • 1970-01-01
      • 1970-01-01
      • 2018-12-05
      • 1970-01-01
      • 2013-04-19
      相关资源
      最近更新 更多