【发布时间】:2016-11-23 18:20:36
【问题描述】:
如果没有互联网连接,我计划在我的应用中使用 Core Data。
所以我正在做的是从我的服务器中检索 图像 和 视频。我目前从从服务器检索到的 url 下载它们(例如图像)并将其转换为 UIImage NSData,然后填充我的 tableView。
现在到 CoreData:
有些人可能会说在 coreData 中存储文件是个坏主意,但由于我一次最多只能存储 5 个图像/视频,所以我不认为存储或速度会成为问题,因为它们不会是大量文件。
问题:
我必须将 UIImage 保存到 CoreData,所以显然我需要获取 URL 然后下载图像并最终将其保存到 coreData。
但是,如果我在查询中这样做以获取可能会减慢查询速度的实际帖子几秒钟,我宁愿不这样做。 所以我想知道最好的方法是什么?
每次出现单元格时,我都会与 SDWebImage 异步下载图像,因此如果我将图像保存到 coreData 一旦下载,这意味着将 5 个图像保存到 CoreData,我需要滚动 5 个单元格。
但我更愿意:加载应用程序,像往常一样从服务器下载图像/视频并填充 tableView,一旦所有这些都发生了,我希望帖子已经保存到 coreData。
因此,如果我在填充 tableView 后立即关闭应用程序,然后断开互联网连接或进入 AirPlane 模式并重新打开应用程序,我在 tableView 中有帖子。
我知道如何将大部分数据保存到 coreData 等...但我想要一些更专业的建议和技巧来说明我应该如何处理这个问题。
我想达到什么目标?
1) 打开应用程序
2) 从服务器下载 5 张图片/视频(这里也很好)
(从这里开始,我想要一些建议)
3) 如果之前保存了任何图像/视频,则清空 coreData
4) 将我最近下载的 5 个图像/视频保存到 CoreData。
最好的解决方案和最快的方法是什么?
感谢任何可以提供建议的人。
【问题讨论】:
-
在 Core Data 中存储二进制文件(我相信)是可行的。但是,我很好奇为什么您认为有必要将文件存储在 Core Data 中而不是文件系统中?您的问题似乎与它们在表格视图中的显示有关,而不是与存储方法相关的任何问题。存储到文件系统将非常简单,并且可以满足您列出的要求。
-
@AnthonyC 文件系统,没听说过...我只是想知道以最快的方式将数据保存到 coreData 或文件系统的最佳方法是什么...如果有的话,还可以删除和添加更多那里已经有数据了...