【问题标题】:Should i save images to local storage in iOS App?我应该将图像保存到 iOS App 中的本地存储吗?
【发布时间】:2017-06-03 08:49:13
【问题描述】:

我正在做一个项目,我想让数据、文本、图像也可以在离线模式下使用。

我从包含图片网址和其他数据的网络服务获取数据。我将文本数据存储在核心数据实体中,但我不在本地保存图像,而是实时获取它们。

要在离线模式下查看图像,我必须将它们保存到本地存储。但是我想知道这是否是正确的方法。将图像保存到本地可能会占用用户设备上的大量存储空间。

解决这个问题的最佳方法是什么?

我应该将图像保存到本地还是应该只在运行时获取它们?

【问题讨论】:

    标签: ios objective-c swift core-data local-storage


    【解决方案1】:

    使用 NSCache。使用 NSCache,您可以设置缓存的图像数量等限制。有关详细信息,请参阅 Apple 的文档:https://developer.apple.com/reference/foundation/nscache?language=objc

    编辑: 没关系 NSCache,只需将图像保存为文件。 NSCache 仍然可以节省您的网络使用量并让您的应用程序响应更快,但这不是您想要的。

    【讨论】:

    • 感谢您的回复。应用重启后NSCache不是被删除了吗?
    • 你是绝对正确的。我不知道我是怎么错过的。对于长期存储,您不妨将图像保存为文件。这不是唯一的选择,您还可以使用 NSUserDefaults、CoreData 或 SQLite,但是将它们保存为单独的文件是最简单的并且可以完成这项工作。
    【解决方案2】:

    我应该将图像保存到本地还是应该只在运行时获取它们?

    这个问题给你,你应该决定你需要什么或者什么更适合你的应用程序。无论如何,如果你想缓存图像,我建议使用这个库SDWebImage

    【讨论】:

    • 我同意这是我应该决定的。但我的问题是关于最佳实践和理想方案。我个人不喜欢下载数据和使用手机存储的应用程序。但总的来说,下载 300 mb 的图像并将它们保存在您的应用程序目录中以供重复使用是否可以?
    • 没关系,所以我的想法现在改变了,300mb的图像太大了,所以我认为你不能设置缓存下载图像的限制
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多