【发布时间】:2018-08-05 18:07:09
【问题描述】:
我尝试在您用 Swift 编写时实现 Search。它已经工作了,但我需要一些调整。我用输入的每封信发送
func searchBar(searchBar: UISearchBar, textDidChange searchText: String) {
let debouncedFindUser = debounce(
Static.searchDebounceInterval,
Static.q,
findUser)
debouncedFindUser()
}
对后端的请求。
func findUser() -> () {
SearchService.sharedInstance.getUser(0, numberOfItems: 100,
searchString: searchUserBar.text.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!
,
success: {SearchUserDto -> Void in
if self.searchUserBar.text != nil {
self.updateSearch()
}
},
failure: {NSError -> Void in
})
}
我尝试了在这里找到的 Debounce 实现 How can I debounce a method call?
我的问题:
如果在特定时间内触发了方法调用,我想“重新启动”它。所以让我们夸大一点。
只有在没有输入搜索文本 2 秒后才开始请求。因此,如果我是一个快速打字员,并且每 0.5 秒键入一个字母,则绝不应该触发请求,除非我暂停至少 2 秒。
【问题讨论】: