Я пытаюсь использовать CKQueryOperation
, а не performQuery
в моей базе данных CloudKit.CKQueryOperation не возвращает ошибку, когда устройство отключено
Оба работают, но при использовании 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
?
Благодаря
Я также обнаружил, что значение 'timeoutIntervalForResource' для операций' timeoutIntervalForResource' составляет 7 дней ... Таким образом, может потребоваться неделя, прежде чем отказаться от запроса, даже если это звучит глупо. Я изменил его на 6 секунд и –