После получения .partialFailure
CKError
, я пытался восстановить идентификаторы и соответствующие ошибки, но у меня возникают проблемы ...выздоравливающие ошибки с CKPartialErrorsByItemIDKey
Сейчас я использую:
print("pE \(error.partialErrorsByItemID) or \(error.userInfo[CKPartialErrorsByItemIDKey])")
if let dictionary = error.userInfo[CKPartialErrorsByItemIDKey] as? [NSObject: Error] {
print("partialErrors #\(dictionary.count)") // <-- Not reaching this...
Я также попытался следующее:
if let dictionary = error.partialErrorsByItemID { // <-- error.pEBIID returns nil
и:
if let dictionary = error.userInfo[CKPartialErrorsByItemIDKey] as? [CKRecord : CKError /* and Error */] { // <-- but neither triggers the if-let
Первая печать показывает это в консоли (я переключился на открытые теги левонаправленный так, что они не будут интерпретированы как HTML):
pE nil or Optional({
">CKRecordID: 0x7b95ace0; CentralTableView:(_defaultZone:__defaultOwner__)>" = ">CKError 0x7a7e4cf0: \"Server Record Changed\" (14/2004); server message = \"record to insert already exists\"; uuid = B7AD7528-D8AE-4DCB-91FF-16B5271110F5; container ID = \"iCloud.com.yadayadayada\">";
})
Как я понимаю из документации Я должен получить NSDictionary<CKRecordID, (CK)Error>
из userInfo
с CKPartialErrorsByItemIDKey
и NSDictionary<NSObject, Error>
из partialErrorsByItemID
. На основе первой печати метод не работает в этой ситуации, но ключ дает мне словарь CKRecordID и CKError. Я не понимаю, почему вторая печать не доходит?
Удивительный спасибо! –