我只是尝试删除CKRecord
。在我将其指定为父级并引用另一个ckrecord之前:
let rID = CKRecordID(recordName: territory.identifier, zoneID: territory.recordZoneID)
let record = CKRecord(recordType: "Territory", recordID: rID)
if let territoryGroup = territoryGroup {
let recordID = CKRecordID(recordName: territoryGroup.identifier, zoneID: CloudAssistant.shared.zone.zoneID)
record.parent = CKReference(recordID: recordID, action: .none)
record["territoryGroup"] = CKReference(recordID: recordID, action: .none)
}
,错误如下:
“删除记录时出错:记录删除会违反验证参考([C1A31F1D-914F-4007-8C8B-73FC0503C798,...]),拒绝更新”
这是为了删除记录而不删除其子记录,这就是为什么我在那里设置了.none
而不是.deleteSelf
。
有什么问题?
仪表板中的内容相同:
对于相应的参考记录,有一个很好的设置:
如您所见,删除自我未被选中。我错过了什么吗?对我来说,它应该没有问题地删除它。
答案 0 :(得分:2)
当我使用setParent(parentRecordID)
设置记录的父级并且还使用CKReference
创建了.none
时,我遇到了同样的错误。看起来如果设置父级,则必须在标准引用上使用.deleteSelf
。但是,据我所知,只有在您想使用CKShare
时才需要设置父级。我写了更多关于它的信息here。
答案 1 :(得分:0)