iPhone SDK - 搜索栏线程同步问题

时间:2010-03-03 19:44:17

标签: iphone search multithreading

这是一个更高级别的“你如何解决这类问题”类型的问题,而不是“为什么我的代码不能编译”的问题。

我在iPhone应用程序中有一个搜索栏,可以很好地搜索我的数据。但是,我在每次按键后触发了搜索(handleSearchForTerm)。这会造成一些滞后。

我喜欢自动显示搜索结果的想法,但我不喜欢大型数据集,搜索行为似乎会中断用户输入。

除了让我的搜索程序更快,我还能解决这个问题吗?或者,有没有更好的方法来处理这个?

有一种想法是,我希望能够仅在按键后500ms触发搜索(除非在此期间有另一个按键,然后重置)。这可能吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您可以使用performSelector:withObject:afterDelay在延迟500毫秒后调用搜索例程

编辑(在您的评论之后):

您可以使用cancelPreviousPerformRequestsWithTarget: selector: object:取消对搜索例程的后续调用

当然,您需要某种机制来确定搜索例程当前是否正在进行中。使用信号量。