我正在开发一个使用 CloudKit 的应用程序,并且一直运行良好。将 iPhone 升级到 iOS 14.x 后,它可以继续使用 WiFi,但使用 LTE 时,它不再完成 CKFetchDatabaseChangesOperation。我可以重新打开 WiFi,一切正常,切换到 LTE 并挂起 CKFetchDatabaseChangesOperation。我什至可以使用 LTE 启动,它挂起,在运行应用程序时切换到 WiFi,它会正常完成操作。
任何人都可以帮我弄清楚这是我的代码中的某些内容还是 iOS 错误吗?
我已经检查了 xCode 12 iOS 14.x 之前的两个副本,并且发布后两者的行为都表现得同样奇怪?
最佳答案
我会检查一些事情。
== 1 ==
首先,确保您的应用已开启蜂窝数据:
设置 > 蜂窝网络 > [您的应用]
== 2 ==
要检查的第二件事是将您的操作设置为具有更高的优先级。它可能实际上正在工作,但速度非常慢。
let operation = CKFetchDatabaseChangesOperation()
//Set these...
operation.qualityOfService = .userInitiated
operation.queuePriority = .veryHigh
...
iCloud 可能会延迟数据传输,以免使用过多的蜂窝数据。
关于ios - 从 iOS 14 或 14.0.1 开始 WiFi 可以工作,但 LTE 不能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64104512/