Use long-lived operations for CK backup.

pull/1/head
Matthew Chen 7 years ago
parent ba3a1863da
commit 0eafb8dc34

@ -133,8 +133,8 @@ import CloudKit
success: @escaping (String) -> Void, success: @escaping (String) -> Void,
failure: @escaping (Error) -> Void) { failure: @escaping (Error) -> Void) {
database().save(record) { let saveOperation = CKModifyRecordsOperation(recordsToSave: [record ], recordIDsToDelete: nil)
(_, error) in saveOperation.modifyRecordsCompletionBlock = { (records, recordIds, error) in
let outcome = outcomeForCloudKitError(error: error, let outcome = outcomeForCloudKitError(error: error,
remainingRetries: remainingRetries, remainingRetries: remainingRetries,
@ -164,6 +164,14 @@ import CloudKit
failure(invalidServiceResponseError()) failure(invalidServiceResponseError())
} }
} }
// These APIs are only available in iOS 9.3 and later.
if #available(iOS 9.3, *) {
saveOperation.isLongLived = true
saveOperation.qualityOfService = .background
}
database().add(saveOperation)
} }
// Compare: // Compare:

Loading…
Cancel
Save