我正在尝试使用 CKQueryOperation
, 而不是 performQuery
在我的CloudKit数据库上。
两者都有效,但是当使用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
?
谢谢