限制Core Data存储大小的最佳方法是什么?

时间:2016-08-16 18:06:05

标签: ios core-data cloud

我有一个应用程序可以从服务器获取Core Data对象。物品数量可能非常大。什么是限制Core Data将存储的项目数量的最佳方法,因此我不会在手机上占用太多空间?我认为对于有序商品,在applicationWillTerminate我可以将除前N个商品之外的所有商品标记为toDelete,然后在下次启动应用时将其删除(根据本文http://inessential.com/2014/02/22/core_data_and_deleting_objects)。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

正如经常发生的那样,什么策略是好的取决于人们如何使用您的数据。哪些数据对于保持可用更重要?什么不太重要?

将第一个N项保留在有序关系中是一个简单的规则,并且相当容易实现。但是,对于您的应用程序来说,取决于数据是什么,一个人如何使用它,以及是否没有其他相关对象可能很重要。您甚至不需要toDelete标志,只需知道N的值即可。但请记住,您不能依赖applicationWillTerminate实际被调用,因此放置关键代码是一个不好的地方。

其他策略可能包括:

  • 删除自下载以来的时间长度测量的最旧数据。本地数据与服务器上的最新数据相匹配。
  • 删除自用户访问以来的时间长度测量的最旧数据。本地数据与用户感兴趣的内容相匹配,同时也允许来自服务器的新数据。

这些更复杂,需要在持久性商店中进行日期跟踪。只有你才能真正说出这些优势是否值得这么复杂。

从一开始,一个更重要的问题是:这甚至不重要吗?有多少项“非常大”? “非常大”的项目是否会转化为大量数据,或者只是很多小项?