gpt4 book ai didi

swift - 如何取消 DispatchQueue.main.asyncAfter(deadline : time) in Swift3?

转载 作者:IT王子 更新时间:2023-10-29 05:14:41 56 4
gpt4 key购买 nike

<分区>

描述:

我目前正在使用以下代码来查看用户是否已停止在搜索栏中键入内容。每次用户在 0.5 秒后立即开始输入时,我都想取消它。

代码:

DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
// your function here
}

问题:

如果用户在 Swift3 中再次输入,我如何取消 DispatchQueue.main.asyncAfter

我尝试过的:

我之前尝试过实现:

NSObject.cancelPreviousPerformRequests(withTarget: self)
self.perform(Selector(("searchForText:")), with: searchString, afterDelay: 0.5)

但是延迟似乎无法正常工作。

更多代码:

//In class SearchViewController: UITableViewController, UISearchResultsUpdating
func updateSearchResults(for searchController: UISearchController) {
let searchString: String = searchController.searchBar.text!

//This is what I previously tried.. which doesn't work...
//NSObject.cancelPreviousPerformRequests(withTarget: self)
//self.perform(Selector(("searchForText:")), with: searchString, afterDelay: 0.5)

//A struct with the first example code shown above.
Utils.Dispatch.delay(secondsToDelay: 1){
print("1 second has passed ! " + searchString)
}
}

56 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com