【发布时间】:2011-05-14 17:32:54
【问题描述】:
如何创建一个包含自定义对象的核心数据实体?
例如有可能持有的实体,例如图像、音频剪辑、自定义哥斯拉对象。
这些是如何保存和加载的?使用 NSData?
【问题讨论】:
-
查看这个问题的第一个答案:Question
标签: iphone objective-c core-data
如何创建一个包含自定义对象的核心数据实体?
例如有可能持有的实体,例如图像、音频剪辑、自定义哥斯拉对象。
这些是如何保存和加载的?使用 NSData?
【问题讨论】:
标签: iphone objective-c core-data
最好的方法是使用“可转换”属性。有关更多信息,请参阅此处的核心数据文档:
【讨论】:
如果自定义类符合 NSCoding 协议,您可以使用Transformable Attributes。苹果章节Non-Standard Persistent Attributes pf Core Data Programming Guide的简短引用:
可变形背后的理念 属性是你访问一个 属性作为非标准类型,但是 在幕后,Core Data 使用了 NSValueTransformer 的实例到 将属性转换为 NSData 的实例。核心数据然后 将数据实例存储到 持久存储。
【讨论】:
是的,你可以使用 NSData 来做到这一点
例如将 UIImage 转换为 NSData
UIImage *img = [UIImage imageNamed:@"some.png"];
NSData *dataObj = UIImageJPEGRepresentation(img, 1.0);
然后你可以将它保存在目录中使用
[dataObj writeToFile:fileName atomically:YES];
这里fileName是目录中文件的路径
【讨论】: