2011-09-07 81 views
0

因此,我正在進行iOS搜索,我必須實現關鍵字搜索。我使用了一個自定義視圖控制器,並在其中嵌入了一個搜索顯示控制器對象。我想要做的是能夠在搜索按鈕被點擊時將搜索詞存儲在某處。在設備基於過去搜索條件的歷史構建自動填充

  1. 將它們存儲在本地,並詢問他們,無論何時進行搜索
  2. 將它們存儲在Web應用程序這個iOS應用連接並執行GET請求:我想到的兩種方法Web應用程序,只要執行搜索

第二個我知道該怎麼做,但我不知道該怎麼做的第一個。

那麼如何在本地存儲搜索條件?另外,有什麼更好的選擇?第一,第二還是另一個?

編輯:遠程API包含我查詢的數據。我想模仿谷歌搜索應用程序的功能,其中它可能存儲用戶搜索的10-20個關鍵字。

在此先感謝!

回答

1

很難推薦更多的數據和用法的理解。例如,關鍵字的數量?關鍵字列表靜態或增長?關鍵字共享?你在搜索什麼 - 本地或遠程?

編輯:你澄清了10 - 20個字符串。在這種情況下,請考慮一些簡單的事情 - [NSArray writeToFile:atomically:],並只保留在一個文件中。如果你在NSArray中讀寫,你可以在內存中快速處理它們。

原文:

如果存儲在本地,這是一個成長的動力組關鍵字,我建議直接CoreData或SQLite的。 Sqlite是一個非常快速的本地數據庫。如果你使用sqlite,在github上籤出fmdb。這是一個客觀的c包裝。

關於利弊:

  1. 本地存儲會更快 - 你不會有網絡延遲。特別是如果你想在鍵盤上輸入提前查詢的話。保持記憶速度更快。
  2. 考慮您要存儲多少數據。那裏有幾個關鍵詞?將設備存儲在數據庫或文件中是否可行?
  3. 是否希望關鍵字能夠從多個用戶共享?在這種情況下,需要在服務器上存儲或者在服務器上存儲並同步到設備的組合。
  4. 根據使用情況,關鍵字是否隨時間增長?在這種情況下,本地數據庫更好。
+0

已經提供了一個編輯來澄清您的大部分問題。我會應用編輯,如果我錯過了一些 – yretuta

+0

你有什麼想法使用NSUserDefaults呢? – yretuta

+0

保存爲NSUserDefaults中的數組或文件中的文件將工作... – bryanmac