cocoa - 在核心数据模型中存储 NSImage

标签 cocoa core-data cocoa-bindings nstableview nsimage

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

最佳答案

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

如果您想通过绑定(bind)在 UI 中显示图像,您还应该阅读 Displaying Images Using Bindings Cocoa 绑定(bind)编程主题部分。

关于cocoa - 在核心数据模型中存储 NSImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/599344/

相关文章:

objective-c - RestKit 是唯一具有 JSON 到 Objective-C 对象映射的框架吗?

objective-c - 在 Cocoa 中创建 Excel (.xlsx) 文件

objective-c - 如何对 NSArrayController (子类)进行单元测试?

objective-c - 我可以使用 NSDictionaryController 作为字典的字典吗?

iphone - 远程服务器上的 CoreData 在不同客户端(应用程序)之间同步

objective-c - 没有名为 'NSTableViewDataSource' 的类型或协议(protocol)

ios - NSFetchRequest 没有看到 NSManagedObjectContext 中关系的变化

ios - [NSDecimalNumber 保留] : message sent to deallocated instance 0x174222220, 但为什么呢?

cocoa - 观察值ForKeyPath :ofObject:change:context: doesn't work properly with arrays

swift - 如何使用 NSArray 绑定(bind)在两个 NSTableView 中显示两个 1 米相关的 CoreData 实体