在核心数据模型中存储 NSImage
Posted
技术标签:
【中文标题】在核心数据模型中存储 NSImage【英文标题】:Storing an NSImage in a Core Data Model 【发布时间】:2009-03-01 06:04:37 【问题描述】:的正确方法是什么?我假设向实体添加属性并为其赋予“二进制”类型应该可以工作,但它不起作用。我有一个包含 NSImageCells 列的表格,但它没有显示任何内容。
【问题讨论】:
【参考方案1】:如果您可以在 10.5+ 中工作,最简单的方法是将图像的 NSImageRep
s 存储在“可转换”属性中。默认情况下,可转换属性使用 NSCoding 在设置时存档其值并在访问时取消存档。这使您不必编写自定义 getter/setter。如果你想变得花哨,你可以编写一个自定义的NSValueTransformer
,它将图像转换为其表示的 acrhived 版本,反之亦然。如果您使用的是 10.4,则必须编写自定义 getter/setter(请参阅 Apple 关于创建 Non-standard persistent attributes 的文档。您可以通过发送 NSImage
-representations
消息来获取图像的图像代表。
如果您想通过绑定在 UI 中显示图像,您还应该阅读 Cocoa 绑定编程主题的Displaying Images Using Bindings 部分。
【讨论】:
【参考方案2】:这并不能回答您提出的确切问题,但根据您存储的图像数量,仅存储图像的路径或 URL、保存在您自己的位置并根据需要加载它们会更有效。
【讨论】:
【参考方案3】:您需要创建它的 NSData 表示。
看看Non-Standard Persistent Attributes。特别是可转换属性和自定义代码下的部分,如果这不能解决您的问题。
【讨论】:
【参考方案4】:这是一个非常简单的实现
http://objectivesheep.com/blog/nsimage_coredata/
【讨论】:
链接页面已不存在。以上是关于在核心数据模型中存储 NSImage的主要内容,如果未能解决你的问题,请参考以下文章
如何将数据从 iOS 中的数据模型存储到核心数据中并以数据模型的格式获取