我有一个允许用户为他们的帐户添加图片的应用程序。我想知道如何使用Core Data存储(从相机或照片库中获得的)图像,因为我可能为用户提供备份功能,并且希望将图像数据传输到服务器。我遇到了有关创建Image模型对象并与模型对象创建一对一关系的设计建议User(因此,除非需要,否则不会调用关联的Image对象)。但是,我不确定如何实际存储图像以及这在性能方面是否可能致命。我会很感激任何尝试此方法的人所提供的有关方法和陷阱的建议。
3 回答
炎炎设计
TA贡献1808条经验 获得超4个赞
在核心数据中存储图像数据的规则如下:
<100 kb的存储在相关实体中(人员,地址或其他)。
<1 mb存储在关系的另一端的单独实体中,以避免性能问题。
1 mb的磁盘存储,并引用Core Data存储中的路径。
您可以使用可转换数据类型将NSImage直接存储到Core Data中。实际上,您可以使用可转换数据类型来存储实现NSCoder协议的任何内容。
我个人不会将其转换为CGImageRef,因为那样会丢失很多信息。
动漫人物
TA贡献1815条经验 获得超10个赞
陷阱:您最终可能会遇到难以处理的庞大SQLite数据库。您是否真的要让用户一步将一个MB的文件上传到服务器?如果蜂窝连接断开几秒钟,您该怎么办?
我认为如果您使用Core Data来管理图片及其上传状态(上传:是或否)会更好。这样,您可以在适合应用程序工作流程的情况下上传图像。好的,由于连接很多,它将持续更长的时间。但是我认为这是一种更清洁的方法。
当您想到iTunes时,谈到备份:无论如何,本地iPhone的“文档”文件夹都已同步。
- 3 回答
- 0 关注
- 419 浏览
添加回答
举报
0/150
提交
取消