簡體   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