为了账号安全,请及时绑定邮箱和手机立即绑定

核心数据-存储图像(iPhone)

核心数据-存储图像(iPhone)

iOS
忽然笑 2019-10-15 10:09:40
我有一个允许用户为他们的帐户添加图片的应用程序。我想知道如何使用Core Data存储(从相机或照片库中获得的)图像,因为我可能为用户提供备份功能,并且希望将图像数据传输到服务器。我遇到了有关创建Image模型对象并与模型对象创建一对一关系的设计建议User(因此,除非需要,否则不会调用关联的Image对象)。但是,我不确定如何实际存储图像以及这在性能方面是否可能致命。我会很感激任何尝试此方法的人所提供的有关方法和陷阱的建议。
查看完整描述

3 回答

?
炎炎设计

TA贡献1808条经验 获得超4个赞

在核心数据中存储图像数据的规则如下:

  • <100 kb的存储在相关实体中(人员,地址或其他)。

  • <1 mb存储在关系的另一端的单独实体中,以避免性能问题。

  • 1 mb的磁盘存储,并引用Core Data存储中的路径。

您可以使用可转换数据类型将NSImage直接存储到Core Data中。实际上,您可以使用可转换数据类型来存储实现NSCoder协议的任何内容。

我个人不会将其转换为CGImageRef,因为那样会丢失很多信息。


查看完整回答
反对 回复 2019-10-15
?
动漫人物

TA贡献1815条经验 获得超10个赞

陷阱:您最终可能会遇到难以处理的庞大SQLite数据库。您是否真的要让用户一步将一个MB的文件上传到服务器?如果蜂窝连接断开几秒钟,您该怎么办?

我认为如果您使用Core Data来管理图片及其上传状态(上传:是或否)会更好。这样,您可以在适合应用程序工作流程的情况下上传图像。好的,由于连接很多,它将持续更长的时间。但是我认为这是一种更清洁的方法。

当您想到iTunes时,谈到备份:无论如何,本地iPhone的“文档”文件夹都已同步。


查看完整回答
反对 回复 2019-10-15
  • 3 回答
  • 0 关注
  • 419 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信