是否可以取消当前正在进行的CloudKit
查询操作,并且不完整?例如,假设我有一个用户输入电子邮件地址的应用程序,然后点击搜索按钮。然后,应用程序将继续搜索CKDatabase
内的众多存储电子邮件地址。如果应用程序要提供一个UIView
,告知用户类似“当前正在搜索(插入电子邮件地址)”,并且还有一个取消按钮,以防查询花费太长时间。有没有办法让用户点击取消按钮,然后执行一些代码来取消CloudKit
当前正在执行的查询?
我问的原因是我的iOS应用程序与我正在开发的情况类似。通常情况下一切正常但速度非常快,但有些情况下我立即意识到我输入了错误的电子邮件地址并需要取消,或者当我在iPhone上使用我的手机网络进行测试时,查询可以采取比wifi更长。
我认为必须有办法做到这一点,对吧?任何能提供答案或指出我正确方向的人都将不胜感激!
答案 0 :(得分:3)
假设您使用的是CKQueryOperation
,只要您有参考,就可以在操作上调用cancel
。
然后,您应该在完成块中正确处理生成的CKErrorOperationCancelled
错误。