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