Iphone 基于过去搜索词的历史构建自动完成

Iphone 基于过去搜索词的历史构建自动完成,iphone,ios,search,Iphone,Ios,Search,所以我正在做一个iOS搜索,我必须实现一个关键字搜索。我使用了一个自定义视图控制器,其中嵌入了一个搜索显示控制器对象。我想做的是,当点击搜索按钮时,能够将搜索词存储在某处。我想到了两种方法: 将它们本地存储在设备中,并在执行搜索时查询它们 将它们存储在此iOS应用程序连接的web应用程序中,并在执行搜索时执行对web应用程序的GET请求 第二个我知道怎么做,但第一个我不知道怎么做 那么如何在本地存储搜索词呢?还有,什么是更好的选择?第一个,第二个,还是另一个 编辑:远程API保存我正在查询的数据

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

  • 将它们本地存储在设备中,并在执行搜索时查询它们
  • 将它们存储在此iOS应用程序连接的web应用程序中,并在执行搜索时执行对web应用程序的GET请求
  • 第二个我知道怎么做,但第一个我不知道怎么做

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

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


    提前谢谢

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

    编辑:你澄清了10-20个字符串。在这种情况下,考虑一些简单的事情--[NSaleRealEtfoI:Actoix:],然后只需保存一个文件。如果你在NSArray中读写,你可以在内存中很快地处理它们

    原件:

    如果您在本地存储,并且它是一组不断增长的动态关键字,我会直接推荐CoreData或Sqlite。Sqlite是一种非常快速高效的本地数据库。如果您使用sqlite,请在github上签出fmdb。这是一个objective-c包装器

    关于利弊:

  • 本地存储将更快—您将不会有网络延迟。特别是如果您想在键笔划上执行提前输入查询。在内存中保存甚至更快
  • 考虑您存储了多少数据。有多少关键词?在设备上以DB或文件的形式存储是否可行
  • 是否希望多个用户共享关键字?在这种情况下,需要在服务器上存储或在服务器上存储并同步到设备的组合
  • 关键词是否会随着使用时间的推移而增长?在这种情况下,本地数据库更好

  • 我们提供了一个编辑,以澄清您的大多数顾虑。如果我错过了一些关于使用NSUserDefaults的想法,我将应用编辑?在NSUserDefaults中保存为数组或在文档中保存为文件的数组将起作用。。。