7

在核心数据模型中存储 NSImage 的正确方法是什么?我假设向实体添加属性并为其指定“二进制”类型应该可以工作,但它不起作用。我有一个包含 NSImageCells 列的表,它没有显示任何内容。

4

4 回答 4

10

如果您可以在 10.5+ 中工作,最简单的方法是将NSImageRep图像的 s 存储在“Transformable”属性中。默认情况下,可转换属性使用 NSCoding 在设置时存档其值并在访问时取消存档。这使您不必编写自定义 getter/setter。如果你想变得花哨,你可以编写一个自定义NSValueTransformer,将图像转换为其表示的 acrhived 版本,反之亦然。如果您使用的是 10.4,那么您必须编写自定义 getter/setter(请参阅 Apple 的有关创建非标准持久属性NSImage的文档。您可以通过发送-representations消息来获取图像的图像代表。

如果您想通过绑定在 UI 中显示图像,您还应该阅读Cocoa 绑定编程主题的使用绑定显示图像部分。

于 2009-03-02T04:24:48.760 回答
8

这不能回答您提出的确切问题,但根据您存储的图像数量,仅存储图像的路径或 URL、保存在您自己的位置并根据需要加载它们会更有效。

于 2009-03-01T12:46:03.167 回答
7

您需要为其创建一个 NSData 表示。

看看Non-Standard Persistent Attributes。尤其是可转换属性和自定义代码下的部分,如果这不能解决您的问题。

于 2009-03-01T06:40:25.853 回答
1

这是一个非常简单的实现

http://objectivesheep.com/blog/nsimage_coredata/

于 2011-05-20T19:26:39.090 回答