ferdyyy
ferdyyy

Reputation: 535

Cloudkit: CKDatabaseOperation not working on cellular

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?

Upvotes: 4

Views: 469

Answers (1)

ferdyyy
ferdyyy

Reputation: 535

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)

Upvotes: 8

Related Questions