CloudKitデータベースにperformQuery
の代わりにCKQueryOperation
を使用しようとしています。デバイスがオフラインのとき、私はエラーを取得していない午前CKQueryOperationを使用しているとき、私はここでperformQuery
デバイスのオフライン時にCKQueryOperationがエラーを返さない
を使用しないとき
どちらの作品は、私の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)
を使用するときにエラーが、私はエラーを取得していない、しかし
The internet connection appears to be offline
です。
CKQueryOperation
を使用するとどのようにエラーが発生するのですか?
おかげ
私はまた、 'timeoutIntervalForResource'のデフォルト値は7日であることがわかりました。だから、愚かに聞こえても、リクエストをあきらめてから1週間かかることがあります。私はそれを6秒に変更し、 –