如何解决为什么删除不存在的 CloudKit 记录显然会成功?
以下示例代码说明了如何尝试删除数据库中不存在的 CloudKit 记录(recordId 已初始化,但数据库中从未保存过此类记录)。我原以为会返回错误,但实际上它返回就像删除成功一样。显然我知道问题是什么,并在实际代码中修复了它,但我期望 CloudKit 返回某种错误是错误的吗?
如果您同意它的误导性,我很乐意提交错误报告以便修复。
import SwiftUI
import CloudKit
struct ContentView: View {
var body: some View {
Button(action: {
deleteIt(recordID: CKRecord.ID(recordName: "Fake record")) //Made up recordID for non-existant record
},label: {
Text("Delete Non-existant record")
})
}
}
func deleteIt(recordID: CKRecord.ID) {
let iCloudDatabase = CKContainer(identifier: "iCloud.com.revcomputing.BWACHotel").privateCloudDatabase
print ("Attempting to delete non-existant 'record': \(recordID)")
iCloudDatabase.delete(withRecordID: recordID) { (deletedRecordID,error) in
DispatchQueue.main.sync {
if deletedRecordID == nil {
print ("❌ Record: \(recordID) wasn't deleted")
}
if error == nil {
print ("❌ iCloud returned no error after deleting 'record': \(deletedRecordID!)")
} else {
print ("❌ CloudKit returned error: \(error!) trying to delete'record': \(deletedRecordID!)")
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
控制台列表 (MacOS):
2021-01-09 08:06:12.948619+1000 CloudKitDeleteError[2709:120918] Metal API 验证已启用
试图删除不存在的“记录”:
谢谢...
罗伯特
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。