我尝试使用CKRecord
保存CKModifyRecordsOperation
,每次尝试,都会出现此初始错误:
[“ CKErrorDescription”:未能修改某些记录,
“ CKPartialErrors”:{ “” CKRecordID:0x60c000034000; recordName = ABC,zoneID = workspaceZone:DEF“ =” CKError 0x60c000257340:\“批处理请求失败\”(22/2024); \“记录CKRecordID:0x7fb2f6998a60; recordName = ABC,zoneID = workspaceZone:DEF将不会保存,因为原子区域中先前存在错误。 },
“ NSDebugDescription”:CKInternalErrorDomain:1011,“ NSUnderlyingError”:CKError 0x60c000248af0:“部分失败”(1011); “未能修改某些记录”;部分错误:{ ... 1“批处理请求失败” CKError被忽略... }
“ NSLocalizedDescription”:无法修改某些记录]
然后我像这样解析批处理中的各个错误:
if let errorItems = error.partialErrorsByItemID {
for item in errorItems{
if let itemError = item.value as? CKError{
print("::: Individual Error in Batch :::")
print(itemError)
print(":::::")
}
}
}
但是所有单个错误都表明:
CKError(_nsError:CKError 0x60c000257340:“批处理请求失败”(22/2024);“记录CKRecordID:0x7fb2f6998a60; recordName = GHI,zoneID = workspaceZone:JKL将由于原子区域中的先前错误而无法保存”)< / p>
CloudKit服务器日志只是说它是 BAD_REQUEST ,它也不是很有帮助。
是否可以获取有关我的记录有什么问题的更多详细信息?
答案 0 :(得分:0)
这仅表示您的请求之一失败。您正在使用一个或多个请求执行批处理请求。如果失败,CloudKit将使所有请求保持原子性的所有请求都会失败。
因此,您应该使用perRecordCompletionBlock
订阅每条记录的错误。然后,您可以查看失败的记录以及原因。您应该打印出错误的userInfo
字典以获取更多详细信息。