使用UISearchBar键入时搜索的最佳方式是什么?

时间:2011-08-15 02:09:01

标签: iphone objective-c cocoa-touch uisearchbar uisearchdisplaycontroller

  

可能重复:
  How to detect a pause in input for UISearchBar/UITextField?

我有一个UISearchDisplayController。目前我正在向我的网络服务器发送一个字符串,然后返回一个结果数组。我希望能够“按我打字的方式搜索”。

建议的方法是什么?我应该逐个字符地点击服务器并返回结果吗?这似乎很贵。

修改

每个角色都会返回一整套结果。不只是一个结果。

4 个答案:

答案 0 :(得分:0)

这几乎是大多数应用程序的做法。

回答您对性能问题的最佳方法是进行一些基准测试。您可以进行调整,例如在他们输入至少3个字母之前不要开始搜索,只检查每2个字母,依此类推。根据您正在处理的数据,缓存也可以是一种选择。或者,如果数据足够小并在设备上进行过滤,那么在进行搜索之前下拉整个数据集会更有意义。

答案 1 :(得分:0)

这很贵。但这只是唯一的方法。如果您有兴趣降低成本,请尝试(1)缓存,(2)在击键和请求之间添加一个小延迟,以及(3)首先获取相关的客户端数据,例如“最近”,“收藏夹” “等等。

答案 2 :(得分:0)

您是否可以让服务器返回包含第一个字符的所有结果的完整列表?如果没有,你将不得不反复点击服务器。如果你点击服务器并且你能够负担得起返回列表的其余部分,返回它并让应用程序处理其余部分,这会有所帮助。

答案 3 :(得分:0)

当然太昂贵了。 将整个列表下载到客户端... 然后搜索列表。