2011-04-13 61 views
3

我有一個大型核心數據數據集,我想添加搜索支持。目前我正在使用抓取的結果控制器在uitableview中顯示數據。我正在計劃使用UISearchDisplayController。現在我有兩個選擇:在您鍵入大型核心數據數據集時搜索

  1. 創建一個新的獲取結果控制器搜索到的數據
  2. 使用數組來顯示過濾的數據

哪種方法更合適/推薦(特別是搜索 - 作爲你型)?是否有任何書或教程解決如何實施建議的解決方案?

回答

2

在幾個項目中,我用「新獲取的成果控制器」選項去,因爲我可能是過濾數據可以吃了所有的RAM的較舊的iPhone。 FRC可以處理低內存問題。 This stackoverflow answer might be helpful to you if you go ith this option

您的數據是否足夠小以適應最低公分母(第1代iPhone)的可用內存?如果是這樣,那麼只需使用NSArray過濾內存。性能方面,這將比使用FRC更快。

+0

我已經完成了 - 使用第二次提取的結果控制器。我還沒有測試它與我的原始數據集有什麼關係。這種搜索方法使用的最大數據集是什麼?我的目標是針對第一代iPad。 – Mustafa 2011-04-14 09:33:30

+0

〜5000個實體,但性能最大的問題將是你的搜索謂詞看起來像(我有一堆字符串比較和SUBQUERYs,所以它可能有點慢)。 – 2011-04-14 16:47:11

1

數據是否不斷被寫入?我有一組1200個記錄,通過「包含」搜索進行搜索。我所做的是在應用程序啓動時有一個包含基於coredata存儲的所有數據集的對象。如果數據在應用程序使用過程中得到更新 - 重新構建這些集合。

然後,當我到達搜索表視圖時,我通過預先加載的數據進行搜索。每次做取指操作都會造成太多的延遲 - 即使寫得好的謂詞和取得的結果控制器也是如此。我發現手動操作要快得多,因爲我可以創建數據的子集以加快搜索速度。

希望這有助於您作出決定。

乾杯,

邁克爾

+0

我不明白你的意思是通過創建數據子集?我正在與iOS合作,而且我沒有奢侈的將完整的數據集加載到內存中。提取結果控制器是我最好的選擇! – Mustafa 2011-04-13 10:01:59