gpt4 book ai didi

iOS 9 CloudKit : query does not return anything while connected to cellular network

转载 作者:IT王子 更新时间:2023-10-29 05:30:24 31 4
gpt4 key购买 nike

我正在使用 xcode 7 beta 5 开发一个应用程序。当我在我的 iphone 6 上运行我的应用程序时,如果我的 iphone 在 wifi 模式下工作,我会尝试将它连接到 CloudKit,一切正常,我会显示我的所有数据;但是如果我的 iPhone 在 LTE 模式下工作,我就看不到任何类型的数据。有谁知道如何做到这一点?

    func getRecordsFromCloud() {  

lavori = []

/

let _cloudContainer = CKContainer.defaultContainer()
let publicDatabase = CKContainer.defaultContainer().publicCloudDatabase

/

let predicate = NSPredicate(value: true)
let query = CKQuery(recordType: "Lavori", predicate: predicate)

/

let queryOperation = CKQueryOperation(query: query)

queryOperation.desiredKeys = ["image","name"]
queryOperation.queuePriority = .VeryHigh
queryOperation.resultsLimit = 50

queryOperation.recordFetchedBlock = { (record:CKRecord) -> Void in

let lavoriRecord = record

self.lavori.append(lavoriRecord)



}

queryOperation.queryCompletionBlock = { (cursor:CKQueryCursor?, error:NSError?) -> Void in

if (error != nil) {

print("Failed to get data from iCloud - \(error!.localizedDescription)")

}
else {

print("Successfully retrieve the data from iCloud")

dispatch_async(dispatch_get_main_queue(), {
self.tableView.reloadData()

})

}

}

/

publicDatabase.addOperation(queryOperation)

}

谢谢,阿莱西奥

最佳答案

打开设置应用,找到您的应用,启用“使用移动数据”

更新:如下所述添加以下代码行解决了问题:

queryOperation.qualityOfService = .UserInteractive

之所以可行,一定是时间/负载问题。我最初的猜测是这是由这条线引起的:

queryOperation.queuePriority = .VeryHigh

.queuePriority 的文档声明如下:您应该仅在需要时使用优先级值来对非依赖操作的相对优先级进行分类。

.qualityOfService 的文档指出:该属性的默认值为 NSOperationQualityOfServiceBackground 并且您应该尽可能保留该值。

所以请尝试同时删除 .queuePriority.qualityOfService 并查看它是否有效。

更新 2: 显然这是一个 CloudKit 错误。更多的人有同样的问题。请举报https://bugreport.apple.com

关于iOS 9 CloudKit : query does not return anything while connected to cellular network,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32493698/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com