Hi to all the CloudKit
users:
I had a horrible time trying to find out why CKDatabaseOperation
wouldn't give any feedback. No errors, no callbacks when saving CKRecords
on cellular.
Could you please let me know what is your opinion regarding this?
Someone in the Developer Forums of Apple found a solution: https://forums.developer.apple.com/thread/20047
the magic happens when setting qualityOfService = .UserInitiated
Example:
let publicDB = CKContainer.defaultContainer().publicCloudDatabase
let operation = CKModifyRecordsOperation(recordsToSave: [aRecord], recordIDsToDelete: nil)
operation.allowsCellularAccess = true
operation.qualityOfService = .UserInitiated // <----- THATS THE CELLULAR FIX
operation.perRecordProgressBlock = {(record, progress) in
print("Progress: \(Int(progress*100.0))%")
}
operation.perRecordCompletionBlock = {(record, error) in
print("Upload complete") //Add awesome error handling here
}
publicDB.addOperation(operation)
来源:https://stackoverflow.com/questions/34189458/cloudkit-ckdatabaseoperation-not-working-on-cellular