我有一个应用程序,我允许用户为他们的帐户添加图像。
我想知道如何使用核心数据存储图像(从相机或照片库获得),因为我可能为用户提供备份工具,并希望将图像数据传输到服务器。
我遇到了这样的设计建议:创建Image模型对象并与User模型对象创建1到1的关系(除非需要,否则关联的图像对象不会被调用)。然而,我不确定如何实际存储映像,以及从性能上看,这是否可能是致命的。
我很感谢任何试图这样做的人就这一做法和陷阱提出任何建议。
发布于 2010-01-20 01:10:21
在核心数据中存储图像数据的规则如下:
您可以使用可转换数据类型将NSImage直接存储到核心数据中。实际上,您可以使用可转换的数据类型来存储实现NSCoder协议的任何内容。
就我个人而言,我不会将其转换为CGImageRef,因为这样可能会丢失大量信息。
发布于 2012-07-02 08:15:42
这个问题提出至今已过了一段时间,但我想分享一下我在这个问题上的经验。
如果图像的数量不受限制,我建议您不要将图像存储在DB中。您应该记住,有一天,您将添加一个新版本的数据模型,您将不得不从旧的DB迁移到一个新的应用程序更新。这需要时间。数据库文件越大,迁移所需的时间就越长。
如果要在DB中存储图像,请确保没有在application: didFinishLaunchingWithOptions:方法UIApplicationDelegate中添加持久存储。如果在XX秒内无法完成迁移,iOS将终止您的应用程序。
发布于 2010-01-19 00:08:46
陷阱:最终你可能会很大,很难处理sqlite数据库。您真的想让用户一步一步地上传几个MB文件到服务器上吗?如果细胞连接中断了几秒钟,你会怎么做?
我认为,如果您使用核心数据来管理您的图像和它们的上传状态(上传:是或否),会更好。这样,您可以上传图像,当它适合您的应用程序工作流程。好的,它会持续更长的时间,因为有很多连接。但这是个更干净的方法我想..。
当您想到iTunes时,当谈到备份时:您的本地iPhone‘Document’文件夹无论如何都是同步的。
https://stackoverflow.com/questions/2090028
复制相似问题