【发布时间】:2015-06-29 13:07:54
【问题描述】:
我想允许用户拍照并将这张照片附加到将存储在 CoreData 中的“人”的个人资料中。
存储此 UIImage 的典型方式是什么?
已编辑
总体而言,每个表(“Person”)将包含一些字符串和这个 UIImage。
我不希望 UIImages 占用太多空间,所以当用户拍照时,我会将其裁剪并尽可能小地保存,而不会失去视觉完整性。但这是另一种方法,以后再想办法。
知道这些 UIImage 的大小范围是多少吗?我只需要每个配置文件的头像。就像在 iPhone 上的“联系人”应用中一样,我也希望能够通过 iMessage 或电子邮件与其他人分享这个“人”。
因此,关于是否需要将整个“人”文件保留的任何建议
100kb 与相关数据存储在同一张表中
1mb 存储在通过关系附加的单独表中,以避免不必要的加载
1mb 存储在磁盘上并在 Core Data 中引用它
【问题讨论】:
-
作为 JPEG 数据(即 CoreData 中的二进制 NSData)将是一个合理的起点。 (参见
UIImageJPEGRepresentation)如果照片“大”,您可能希望将它们作为纯文件保存在文件系统中,CoreData 中只有路径名等 -
我的应用不需要照片很大,只需要一张个人资料图片,这样用户就可以记住这个人是谁......就像 iPhone 上的“联系人”一样。