CloudKit批次错误:原子区中的先前错误

时间:2018-06-26 21:31:48

标签: cloudkit ckerror

我尝试使用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 ,它也不是很有帮助。

是否可以获取有关我的记录有什么问题的更多详细信息?

1 个答案:

答案 0 :(得分:0)

这仅表示您的请求之一失败。您正在使用一个或多个请求执行批处理请求。如果失败,CloudKit将使所有请求保持原子性的所有请求都会失败。

因此,您应该使用perRecordCompletionBlock订阅每条记录的错误。然后,您可以查看失败的记录以及原因。您应该打印出错误的userInfo字典以获取更多详细信息。

相关问题