我想在延迟后向服务器发送请求,但如果用户已更改状态UITextFiled
,则应终止此请求。我现在拥有的是
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
sessionManager.session.invalidateAndCancel()
APIModel().searchRequest()...
}
但它实际上并没有阻止请求到达服务器。我想我应该在发送请求之前使用GDC
delay
等待一秒钟,然后,如果UITextField
发生更改,则终止它。但我找不到这种逻辑实现的例子。
答案 0 :(得分:1)
您无法“终止”请求。
您可以使用“已取消”属性创建对象。然后,您调度访问该对象的代码,并在适当的时候检查“已取消”属性是否为true。从外面看,当你有这种感觉时,你会将其取消为真。
如果操作设法完成并检测到它已被取消,那么它应该不会产生任何错误消息,并且不会执行任何其他操作,因为它已被取消。