2

を取得.partialFailure CKErrorした後、ID と対応するエラーを回復しようとしましたが、問題が発生しています...

今私は使用しています:

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>戻ってくるはずです。最初のプリントに基づくと、この状況ではメソッドは機能していませんが、key は CKRecordID と CKError の辞書を提供しています。2 番目のプリントに到達しない理由がわかりません。userInfoCKPartialErrorsByItemIDKeyNSDictionary<NSObject, Error>partialErrorsByItemID

4

1 に答える 1