gpt4 book ai didi

ios - 解析 CloudKit 错误(CKError)

转载 作者:搜寻专家 更新时间:2023-10-31 22:17:54 26 4
gpt4 key购买 nike

我正在使用 CloudKit 并检查是否已创建特定区域。

对于这个例子,假设一个区域没有设置,所以 CloudKit 给我检索了一个 CKError

这个 CKError 有一个名为 partialErrorsByItemID 的属性,它的类型是 [AnyHashable : Error]?

代码如下:

fileprivate func checkIfZonesWereCreated() {
let privateDB = CKContainer.default().privateCloudDatabase
let op = CKFetchRecordZonesOperation(recordZoneIDs: [zoneID1, zoneID2])
op.fetchRecordZonesCompletionBlock = { (dict, err) in
if let err = err as? CKError, let _err = err.partialErrorsByItemID {
print(_err)
/* prints
[AnyHashable(<CKRecordZoneID: 0x60800003cba0; ownerName=__defaultOwner__, zoneName=TestZone>): <CKError 0x60400005a760: "Zone Not Found" (26/2036); server message = "Zone 'TestZone' does not exist"; uuid = ...-2DF4E13F81E2; container ID = "iCloud.com.someContainer">]
*/

// If I iterate through the dictionary
_err.forEach({ (k, v) in
print("key:", k) // prints: key: <CKRecordZoneID: 0x60800002d9e0; ownerName=__defaultOwner__, zoneName=TestZone>
print("value:", v) // prints: value: <CKError 0x60400005a760: "Zone Not Found" (26/2036); server message = "Zone 'TestZone' does not exist"; uuid = ...-2DF4E13F81E2; container ID = "iCloud.com.someContainer

})

return
}
print("dict:", dict)
}
privateDB.add(op)
}

如何解析这个错误?我需要访问 zoneName 吗?

最佳答案

_err 中的键是一个CKRecordZoneID。完成后,使用 zoneName 属性获取区域名称。

我会写你的代码如下:

fileprivate func checkIfZonesWereCreated() {
let privateDB = CKContainer.default().privateCloudDatabase
let op = CKFetchRecordZonesOperation(recordZoneIDs: [zoneID1, zoneID2])
op.fetchRecordZonesCompletionBlock = { (dict, err) in
if let err = err as? CKError {
switch err {
case CKError.partialFailure:
if let _err = err.partialErrorsByItemID {
for key in _err.keys {
if let zone = key as? CKRecordZoneID {
let name = zone.zoneName
print("Missing zone: \(name)")
}
}

return
}
default:
break
}
}
print("dict:", dict)
}
privateDB.add(op)
}

关于ios - 解析 CloudKit 错误(CKError),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51195331/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com