2013-06-26 70 views
0

因此,我正在使用Core Data作爲存儲在遠程服務器上的數據的本地離線存儲的iOS應用程序。想象Mail.app保留最近的消息的方式。現在,應用程序非常天真地存儲所有這些數據,而不刪除任何舊數據。在iOS應用程序中使緩存數據無效的理想時間

我的問題是這樣的:iOS應用程序生命週期中的最佳時間是什麼,以處理像刪除緩存數據這樣的任務?我已經知道如何我要刪除這個舊數據,但這樣做是一個昂貴的操作。所以我想知道的是什麼時候執行這種昂貴的操作的最佳時機。

回答

1

如果沒有太多的麻煩,那麼當應用程序進入後臺時這樣做將是一個很好的時間來做到這一點。但是,如果需要大約10秒或更長時間,請務必設置一個後臺任務以允許您運行更多時間。

+0

我正在考慮在應用程序進入後臺時做什麼,後臺任務是什麼? – rpowell

+0

背景任務是您研究的主題;)。 *在後臺執行有限長任務*在[本頁](http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html) – borrrden

+0

後臺任務看起來像我想要的,謝謝。 – rpowell

0

您可以使用GCD或NSOperationQueue在後臺運行此操作。我會在從服務器獲取新數據後執行此操作,然後刪除舊緩存並構建新緩存。如果你將昂貴的操作轉移到後臺(線程,阻塞,NSOperation或你喜歡的任何東西),那麼最好使用子NSMagaedObjects進行同步。

相關問題