2011-09-07 82 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