我试图在我的CKQueryOperation数据库中使用performQuery,而不是performQuery。
两者都能工作,但当使用CKQueryOperation时,当设备脱机时,我不会收到错误,但在使用performQuery时会出错。
下面是我的performQuery示例,数据库是我的CKDatabase
database.performQuery(q, inZoneWithID: nil) { (records:[CKRecord]?, error:NSError?) in
if error != nil {
print(error!.localizedDescription)
return
}
}当设备脱机时会出现错误,允许我提示用户。错误是
The internet connection appears to be offline
然而,当我使用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时,我是如何/哪里被告知错误的?
谢谢
发布于 2016-04-11 12:12:20
和往常一样,我发了一个赏金,然后在一两个小时内找到了答案。我不知道我最初是怎么错过this的,但它包含了我正在寻找的答案。
因此,通过添加这一行
queryOperation.qualityOfService = .UserInitiated一些幕后的变化,我们有一些很好的行动
queryOperation.queryCompletionBlock = { (cursor: CKQueryCursor?, error: NSError?) in
// We get an error message... Finally !!
print(error)
}在Apple中也找不到任何提示。
https://stackoverflow.com/questions/36230005
复制相似问题