删除CKRecord:记录删除会违反验证参考,拒绝更新

问题描述 投票:3回答:1

我只是想删除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

怎么了?

仪表板中相同:

enter image description here

对于相应的参考记录,有一个很好的设置:

enter image description here

如您所见,删除Self未被选中。我错过了什么吗?对我来说,它应该没有问题地删除它。

ios swift cloudkit
1个回答
2
投票

当我使用setParent(parentRecordID)设置记录的父级并且还使用CKReference创建了.none时,我遇到了同样的错误。看起来如果设置父级,则必须在标准引用上使用.deleteSelf。但是,据我所知,只有在你想使用CKShare时才需要设置父级。我写了更多关于它here

© www.soinside.com 2019 - 2024. All rights reserved.