2010-12-21 98 views
0

我正在開發一個使用核心數據的iPad應用程序,並希望有人能澄清一些關於核心數據。什麼是使用核心數據的最有效方式?

現在,我通過在viewDidLoad中爲我的所有數據提取請求來填充我的表格。我寧願在我的tableView:cellForRowAtIndexPath:中提出個別提取請求。誰能告訴我哪個更有效率,爲什麼?換句話說,與一個大的請求相比,提出大量小的請求效率低得多嗎?

回答

4

您的提取請求有一個名爲fetchBatchSize的屬性,它告訴您的提取請求僅用於批量提取數據。這意味着對於20個批量大小,只有前20個項目被加載到內存中。當用戶滾動過去20時,另外20個項目會自動加載,等等。

另外,Apple發佈了一個NSFetchedResultsController類,該類設計用於管理數據的表示和編輯(當然,它最適合於表視圖,但可以與其他類型的視圖控制器一起使用)。它爲你提供了很多其他優化(比如批量提取,內存管理等),因此它提供了比你自己創建,啓動和管理你的提取請求更好的性能。

+0

對於`NSFetchedResultsController`爲+1,一個低估的寶石。 – 2010-12-22 00:07:25

相關問題