在核心数据中保存照片

Bau*_*aub 2 iphone core-data objective-c ios

我试图以最有效的方式做到这一点.想想Apple在iPhone上的内置地址簿 - 这就是我想在这里复制的内容.

一个实体Person和多个属性,但每个属性Person可以有一张照片.

为实体保存照片的最佳方法是什么?

Dan*_*iel 11

在我看来,保存照片或任何大数据的最佳方法是将它们保存到文件中,并将文件路径存储为核心数据实体中的字符串...


Mar*_*ams 8

在iOS 5.0+和Mac OS X 10.7+中使用Core Data存储二进制数据有一种很棒的新方法.NSAttributeDescription现在有一个BOOL叫做的属性allowsExternalStorage.

从文档......

如果该值为YES,则相应的属性可以存储在持久性存储本身外部的文件中.

这意味着二进制数据将持久保存到磁盘,并且对该项的引用将由Core Data自动存储在持久性存储中.在Xcode模型编辑器中,只需在检查器视图中检查该属性的选项即可启用此功能.

NSAttributeDescription Inspector  - 允许外部存储


对于5.0之前的版本,您需要将图像保存到用户的Documents目录,然后在保存之前将文件URL添加到模型对象.