基于过去搜索术语的历史构建自动完成

时间:2011-09-07 00:10:01

标签: iphone ios search

所以我正在进行iOS搜索,我必须实现关键字搜索。我使用了自定义视图控制器,其中嵌入了搜索显示控制器对象。我想要做的是能够在单击搜索按钮时将搜索项存储在某处。我想到了两种方法:

  1. 将它们本地存储在设备中,并在执行搜索时进行查询
  2. 将它们存储在此iOS应用程序所连接的Web应用程序中,并在执行搜索时对Web应用程序执行GET请求
  3. 第二个我知道怎么做,但我不知道如何做第一个。

    那我如何在本地存储搜索字词?另外,什么是更好的选择?第一个,第二个,还是另一个?

    编辑:远程API保存我正在查询的数据。我想模仿谷歌搜索应用程序的功能,它可以存储10-20个用户搜索的关键字。

    提前致谢!

1 个答案:

答案 0 :(得分:1)

很难建议更多地了解数据和使用情况。例如,关键字的数量?关键字列表静态还是增长?关键字共享?你在搜索什么 - 本地或远程?

编辑:你澄清了10到20个字符串。在这种情况下,考虑一些简单的事情 - [NSArray writeToFile:atomically:]并且只是保存在文件中。如果你在NSArray中读写,你可以在内存中快速处理它们。

原件:

如果您在本地存储并且它是一组不断增长的动态关键字,我会直接推荐CoreData或Sqlite。 Sqlite是一个非常快速高效的本地数据库。如果你做sqlite,请在github上检查fmdb。这是一个客观的包装。

关于利弊:

  1. 本地存储速度更快 - 您不会遇到网络延迟。特别是如果你想在击键时提前输入查询。记忆更快。
  2. 考虑您要存储的数据量。有多少关键词?在数据库或文件中存储设备是否可行?
  3. 您是否希望从多个用户共享关键字?在这种情况下,需要存储在服务器上或存储在服务器上并同步到设备的组合。
  4. 关键字会根据使用情况随时间而增长吗?在这种情况下,本地数据库更好。