CKQueryOperation iOS 9 只能在插入时工作

Posted

技术标签:

【中文标题】CKQueryOperation iOS 9 只能在插入时工作【英文标题】:CKQueryOperation iOS 9 only work plugged in 【发布时间】:2015-08-29 18:47:29 【问题描述】:

我在我的 ios 9 应用程序中使用 CloudKit,并且我有一个 CKQueryOperation,它可以正常工作并且在插入 Mac 时按预期执行。只要查询在未插入 Mac 时运行,它就不会完成。没有错误消息,我添加的活动指示器永远不会停止,结果也永远不会显示。

如果我在拔掉电源的情况下开始操作,那么插入它也完成。

代码是从 Xcode 6.4 中构建的应用复制和改编的,并且在该应用中按预期工作。

任何想法为什么会发生这种情况?这可能与 iOS 9 中的应用瘦身有关吗?

谢谢

回答

添加这个解决了这个问题: queryOperation.qualityOfService = NSQualityOfService.UserInitiated

【问题讨论】:

【参考方案1】:

iOS 9 更改了默认的 QoS。如果查询操作是用户发起的,则需要将其标记为这样。

参见 CKOperation.h 和 QualityOfService 属性。

【讨论】:

查询在 ViewDidLoad 上运行,并在用户下拉集合视图时使用 UIRefreshController。这是你的意思吗?我去看看文档。 我已添加 queryOperation.qualityOfService = NSQualityOfService.UserInitiated 已解决此问题。

以上是关于CKQueryOperation iOS 9 只能在插入时工作的主要内容,如果未能解决你的问题,请参考以下文章

CKQueryOperation 可见性、取消和超时可能性

使用 CKQueryOperation 和 CKReference 获取大集合

CKQueryOperation 处理大批量

CloudKit:删除记录的 CKQueryOperation

CloudKit - 具有依赖关系的 CKQueryOperation

CKQueryOperation queryCompletionBlock 返回一个 nil 游标