取消正在进行的CloudKit查询



是否可以取消当前正在进行且未完成的CloudKit查询操作?例如,假设我有一个应用程序,用户在其中输入电子邮件地址,然后点击搜索按钮。然后,该应用程序将继续搜索CKDatabase内存储的大量电子邮件地址。如果该应用程序显示一个UIView,通知用户"当前正在搜索(插入电子邮件地址)"之类的信息,并有一个"取消"按钮,以防查询耗时过长。有没有办法让用户点击取消按钮,然后执行一些代码来取消CloudKit当前正在执行的查询?

我问的原因是,我目前正在开发的iOS应用程序也有类似的情况。通常情况下,一切都很好,速度也很快,但也有一些情况下,我要么立即意识到我输入了错误的电子邮件地址,需要取消,要么当我在iPhone上使用手机网络进行测试时,查询可能比在wifi上花的时间长得多。

我想一定有办法做到这一点,对吧?任何能提供答案或为我指明正确方向的人都将不胜感激!

假设您使用的是CKQueryOperation,那么只要您有对它的引用,就可以对操作调用cancel

然后,您应该正确处理完成块中产生的CKErrorOperationCancelled错误。

最新更新