2011-03-15 150 views
1

如何減少核心數據中的提取請求時間?核心數據NSFetchedResultsController

我使用核心數據從.sqlite文件中獲取10000個數據NSFetchedResultsController它需要太多的時間加載。

+2

試圖接受TechZen的答案。它真的值得你的問題。 – 2012-03-31 15:21:05

回答

0

你可以嘗試只提取對象id而不是整個對象。它通常更快。

6

請參見:Core Data Performance in the Core Data Programming Guide

通常情況下,你要設置獲取的限制,並獲取斷層。這樣你只能得到一小排輕量級代理對象。您還應該確保使用NSFetchResultsController的緩存。

但是,您可能想重新考慮您的UI設計。我有10,000行單桌是瘋狂的,特別是在移動設備上。即使使用索引表,您也會要求您的用戶通過數百行記錄。您應該考慮將數據分解成某種邏輯層次結構,以便能夠以層次結構的形式顯示。原則上,您可以在4個表格中顯示10,000個對象,每個對象只有10個選項。這對用戶來說更容易導航,並且每張桌子的相應提取也很輕鬆快捷。

相關問題