我有一个应用程序可以从服务器获取Core Data对象。物品数量可能非常大。什么是限制Core Data将存储的项目数量的最佳方法,因此我不会在手机上占用太多空间?我认为对于有序商品,在applicationWillTerminate
我可以将除前N个商品之外的所有商品标记为toDelete
,然后在下次启动应用时将其删除(根据本文http://inessential.com/2014/02/22/core_data_and_deleting_objects)。有什么想法吗?
答案 0 :(得分:1)
正如经常发生的那样,什么策略是好的取决于人们如何使用您的数据。哪些数据对于保持可用更重要?什么不太重要?
将第一个N
项保留在有序关系中是一个简单的规则,并且相当容易实现。但是,对于您的应用程序来说,好取决于数据是什么,一个人如何使用它,以及是否没有其他相关对象可能很重要。您甚至不需要toDelete
标志,只需知道N
的值即可。但请记住,您不能依赖applicationWillTerminate
实际被调用,因此放置关键代码是一个不好的地方。
其他策略可能包括:
这些更复杂,需要在持久性商店中进行日期跟踪。只有你才能真正说出这些优势是否值得这么复杂。
从一开始,一个更重要的问题是:这甚至不重要吗?有多少项“非常大”? “非常大”的项目是否会转化为大量数据,或者只是很多小项?