ios - 取消正在进行的 CloudKit 查询

标签 ios swift cloudkit

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

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

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

最佳答案

假设您正在使用 CKQueryOperation,只要您有对它的引用,就可以在该操作上调用 cancel

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

关于ios - 取消正在进行的 CloudKit 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37599932/

相关文章:

ios - 如何在 imageView 上设置自动布局约束以获得良好的分辨率图像?

ios - 更改 Box2D anchor ?

swift - 等到任务完成后再运行

ios - 为 iOS 应用程序存储外部数据库的最佳选择

ios - 使用 SDWebImage 在服务器上更改图像时如何更新缓存中的图像

ios - Swift - 选择值后隐藏pickerView

swift - `Animation` 案例 (SwiftUI) 的长度是多少?

class - 快速更改类中变量的值

ios - 在 CloudKit 中使用比较谓词进行查询

javascript - CloudKitJS 服务器到服务器配置