Cloudkit: CKDatabaseOperation 不适用于手机

Cloudkit: CKDatabaseOperation not working on cellular

大家好 CloudKit 用户:

我花了很长时间试图找出为什么 CKDatabaseOperation 不提供任何反馈。在手机 CKRecords 上保存时没有错误,没有回调。

请问您对此有何看法?

苹果开发者论坛有人找到了解决办法: https://forums.developer.apple.com/thread/20047

魔法发生在设置 qualityOfService = .UserInitiated

示例:

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)