gpt4 book ai didi

ios - 设备离线时 CKQueryOperation 不返回错误

转载 作者:技术小花猫 更新时间:2023-10-29 10:47:56 26 4
gpt4 key购买 nike

我正在尝试在我的 CloudKit 数据库上使用 CKQueryOperation,而不是 performQuery

两者都有效,但是当使用 CKQueryOperation 时,当设备处于离线状态时我不会收到错误消息,但是当我使用 performQuery

时会收到错误消息

这是我的 performQuery 示例的骨架,数据库是我的 CKDatabase

database.performQuery(q, inZoneWithID: nil) { (records:[CKRecord]?, error:NSError?) in
if error != nil {
print(error!.localizedDescription)
return
}
}

设备离线时报错,让我提示用户。错误是

互联网连接似乎处于离线状态

但是,当我使用 CKQueryOperation

时,我没有收到任何错误
let p = NSPredicate(format:"recordID IN %@", student.courses)
let q = CKQuery(recordType: String(Course), predicate: p)

let queryOperation = CKQueryOperation(query: q)

queryOperation.recordFetchedBlock = { record in
// not called without network connection - doesn't enter scope
print(record)
}


queryOperation.queryCompletionBlock = { (cursor: CKQueryCursor?, error: NSError?) in
// not called without network connection - doesn't enter scope
print(cursor)
print(error)
}

database.addOperation(queryOperation)

通过连接,我收到了两种方法的数据,因此它按预期工作。

在使用 CKQueryOperation 时如何/在何处通知我错误?

谢谢

最佳答案

像往常一样,我发布赏金并在接下来的一两个小时内找到答案。不知道我是怎么错过的 this最初,但它包含了我正在寻找的答案。

所以通过添加这一行

queryOperation.qualityOfService = .UserInitiated

幕后的事情发生了变化,我们内部有一些不错的 Action

queryOperation.queryCompletionBlock = { (cursor: CKQueryCursor?, error: NSError?) in
// We get an error message... Finally !!
print(error)
}

在 Apple Docs 中也找不到任何暗示这一点的内容。

关于ios - 设备离线时 CKQueryOperation 不返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36230005/

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