是否可以取消当前正在进行且未完成的CloudKit
查询操作?例如,假设我有一个应用程序,用户在其中输入电子邮件地址,然后点击搜索按钮。然后,该应用程序将继续搜索CKDatabase
内存储的大量电子邮件地址。如果该应用程序显示一个UIView
,通知用户"当前正在搜索(插入电子邮件地址)"之类的信息,并有一个"取消"按钮,以防查询耗时过长。有没有办法让用户点击取消按钮,然后执行一些代码来取消CloudKit
当前正在执行的查询?
我问的原因是,我目前正在开发的iOS应用程序也有类似的情况。通常情况下,一切都很好,速度也很快,但也有一些情况下,我要么立即意识到我输入了错误的电子邮件地址,需要取消,要么当我在iPhone上使用手机网络进行测试时,查询可能比在wifi上花的时间长得多。
我想一定有办法做到这一点,对吧?任何能提供答案或为我指明正确方向的人都将不胜感激!
假设您使用的是CKQueryOperation
,那么只要您有对它的引用,就可以对操作调用cancel
。
然后,您应该正确处理完成块中产生的CKErrorOperationCancelled
错误。