这是一个更高级别的“你如何解决这类问题”类型的问题,而不是“为什么我的代码不能编译”的问题。
我在iPhone应用程序中有一个搜索栏,可以很好地搜索我的数据。但是,我在每次按键后触发了搜索(handleSearchForTerm)。这会造成一些滞后。
我喜欢自动显示搜索结果的想法,但我不喜欢大型数据集,搜索行为似乎会中断用户输入。
除了让我的搜索程序更快,我还能解决这个问题吗?或者,有没有更好的方法来处理这个?
有一种想法是,我希望能够仅在按键后500ms触发搜索(除非在此期间有另一个按键,然后重置)。这可能吗?
感谢您的帮助。
答案 0 :(得分:1)
您可以使用performSelector:withObject:afterDelay在延迟500毫秒后调用搜索例程
编辑(在您的评论之后):
您可以使用cancelPreviousPerformRequestsWithTarget: selector: object:取消对搜索例程的后续调用
当然,您需要某种机制来确定搜索例程当前是否正在进行中。使用信号量。