繁体   English   中英

限制核心数据存储大小的最佳方法是什么?

[英]What's the best way to limit the size of a Core Data store?

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

通常,哪种策略有效取决于人们如何使用您的数据。 哪些数据对保持可用更为重要? 什么不那么重要?

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

其他策略可能包括:

  • 删除最早的数据,以下载以来的时间长度为准。 本地数据与服务器上的最新数据匹配。
  • 删除最旧的数据(以用户访问该数据以来的时间为准)。 本地数据与用户感兴趣的内容匹配,同时还允许来自服务器的新数据。

这些更为复杂,需要在持久性存储中跟踪日期。 只有您才能真正说出优势是否值得这种复杂性。

不过,从一个更重要的问题开始:这是否重要? “非常大”有多少个项目? “大量”项目会转换为大量数据还是只是少量项目?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM