2015-12-09 4 views
1

Привет всем CloudKit пользователей:Cloudkit: CKDatabaseOperation не работает на клеточном

У меня было ужасное время, пытаясь выяснить, почему CKDatabaseOperation не дает никакой обратной связи. Нет ошибок, нет обратных вызовов при сохранении CKRecords на сотовой.

Не могли бы вы дать мне знать, что вы думаете по этому поводу?

+0

Возможный дубликат [IOS 9 CloudKit: запрос ничего не возвращает при подключении к сотовой сети] (http://stackoverflow.com/questions/32493698/ios-9-cloudkit-query-does-not-return-anything-while -связный к сотовому-netwo) – rmaddy

ответ

5

Кто-то в форумы разработчиков яблочного нашел решение: 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)