在Core Data模型中存储NSImage

7

如何正确地在 Core Data 模型中存储 NSImage?我认为将属性添加到实体并将其类型设置为“二进制”应该可以工作,但它并没有起作用。我有一个包含 NSImageCells 列的表格,但它没有显示任何内容。

4个回答

10
如果您可以在10.5+中工作,最简单的方法是将图像的NSImageRep存储在“Transformable”属性中。默认情况下,可转换属性使用NSCoding在设置时归档其值,并在访问时进行反归档。这样就不需要编写自定义的getter和setter了。如果您想变得高端一点,可以编写一个自定义的NSValueTransformer,将图像转换为其表示的已归档版本,并在获取时进行相反的操作。如果您使用的是10.4,则必须编写自定义的getter和setter(请参阅苹果公司有关创建非标准持久性属性的文档)。您可以通过向NSImage发送-representations消息来获取图像的图像表示。
如果您想通过绑定在UI中显示图像,还应阅读Cocoa Bindings编程主题中的使用绑定显示图像部分。

8
这并没有回答你所问的确切问题,但是根据你存储的图片数量,只存储图像的路径或URL可能更有效率,这些路径或URL保存在你自己的位置,并在需要时加载它们。

7

您需要创建一个NSData表示。

请查看非标准持久属性,尤其是在可转换属性下的部分以及自定义代码,如果那不能解决问题。


1

该链接页面已经不存在。 - David Ganster

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接