2013-10-23 50 views
0

我想聽聽其他關於如何在iOS上以便於用戶使用(不阻擋UI)的方式從SQL存儲中加載大數據(大量行數爲100000)的CoreData的其他選項。CoreData加載大數據

目前,我這樣做:

  1. 充分利用取上一個輔助線程名爲例如
  2. 有管理的情況下通知UI線程的數據加載
  3. 發送reloadData消息到UITableView以顯示新數據
  4. 在表數據源方法中,我使用數據源從B上下文中獲取數據managedObjectID和方法objectWithID上下文A這是我的情況下的主要上下文或UI上下文。

這樣做有時候我覺得這不是最好的方法,所以我想聽聽你的其他選擇。

謝謝你的幫助! :)

+0

爲什麼您需要一次獲取所有100,000個條目?您的用戶界面是否能夠同時顯示多個項目? –

+0

我想顯示這些行不會一​​次加載到內存中..我已經做到了這一點,它的工作原理,但我想看看別人是否有不同的技術做這個..謝謝你的問題,雖然 – Cata

+0

請看看在[objc](http://www.objc.io/issue-4/)的問題#4中。他們提供了一個導入大型數據集的例子。 –

回答

0

嘗試使用NSFetchedResultsController做在主線程和設定的batchSize爲較小的值(例如200)

0

如果您不需要變化監測,對乾嘔要求設置NSDictionaryResultType。然後你會得到NSDictionary,你不需要再次從上下文A獲取對象。