这是一段代码,我在其中修改用户私有CloudKit DB上的一些记录.
let op = CKModifyRecordsOperation(recordsToSave: recordsToModify, recordIDsToDelete: [])
op.savePolicy = CKRecordSavePolicy.ChangedKeys
op.modifyRecordsCompletionBlock = { saved, deleted, err in
println("modified all ... \(saved.count) w err '\(err)' \(err != nil ? err.userInfo : [:])")
}
self.privateDB.addOperation(op)
Run Code Online (Sandbox Code Playgroud)
这非常有效:
modified all ... 284 w err 'nil' Optional([:])
Run Code Online (Sandbox Code Playgroud)
但是我时不时地得到以下输出:
modified all ... 0 w err '<CKError 0x7f9210e92840:"Zone Busy" (23/2029);
"Zone busy">' Optional([NSDebugDescription: CKInternalErrorDomain: 2029,
NSLocalizedDescription: Zone busy, NSUnderlyingError: <CKError 0x7f9210ea7dd0:
"Unknown Error" (2029)>])
Run Code Online (Sandbox Code Playgroud)
我假设这是CloudKit方面的某种打嗝 - 但我如何检测到这一点?我应该怎么处理?
此错误表示您的请求正常,但云服务器处理请求超载.您应该等待一段时间后再次尝试操作.这也是在WWDC 2014视频231 - Advanced CloudKit结束时提到的.
可以在此处找到一些其他信息:CloudKit Framework常量参考
| 归档时间: |
|
| 查看次数: |
489 次 |
| 最近记录: |