在核心数据中保存照片
我正在尝试以最有效的方式做到这一点。想想苹果在iPhone上建立的地址簿 - 这就是我想在这里复制的。在核心数据中保存照片
一个实体,Person
和多个属性,但每个Person
可以有一张照片。
保存实体照片的最佳方法是什么?
最好的办法是将它们保存到一个文件,并存储为核心的数据实体的字符串的文件路径...
在你的管理对象模型文件( .momd)添加到Person实体,并将其类型设置为“Transformable”。在可变形属性中,可以存储符合协议的任何类型的对象,幸运的是,UIImage
就是其中之一。 欲了解更多有关NSCoding的信息,请参阅Apple文档:http://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Protocols/NSCoding_Protocol/Reference/Reference.html#//apple_ref/occ/intf/NSCoding
在iOS 5.0+和Mac OS X 10.7+中,存储Core Data的二进制数据是一种很好的新方法。 NSAttributeDescription
现在有一个名为allowsExternalStorage
的BOOL
财产。
从文档...
如果这个值是YES,相应属性可以被存储在一个文件 外部到持久存储本身。
这意味着二进制数据将被保存到磁盘,并且该数据项的引用将被Core Data自动存储在持久存储区中。在Xcode模型编辑器中,只需在检查器视图中检查该属性的选项即可启用该功能。
对于5.0版之前,您需要保存图片关闭用户的文档目录,然后在保存前将文件添加URL到你的模型对象。
感谢您的更新回答.. – 2012-03-03 13:14:53
如果你必须支持4.x设备,这是要走的路。 – 2011-12-16 21:08:52