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