2017-12-12 9 views
2

간단히 CKRecord을 삭제하려고합니다. 나는이 같은 다른 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, ...]), 거부 갱신 "

이는 자식 레코드를 삭제하지 않고 레코드를 삭제하도록하고, 내가 거기가 .deleteSelf 대신 행동 .none을 설정하는 이유입니다했다.

무엇이 잘못 되었나요?

대시 보드 같은

는 :

enter image description here

당신은 자기가 선택되지 않은 삭제 볼 수 있듯이 :

enter image description here

참조 기록을 해당위한 좋은 설정이 있습니다. 나는 sth을 놓치고 있습니까? 나를 위해, 그것을 문제없이 삭제해야합니다.

+1

CKRecord의 부모 속성을 설정하면 레코드 계층을 만들 수 있습니다. 나는 당신이 행동으로 .none 또는 .deleteSelf를 선택했는지 상관없이, 계층 구조가 설정되었다고 가정합니다. territoryGroup 레코드 속성을 사용하여 계층 구조를 완성 했으므로 해당 행에 주석을 달아보십시오. 어쩌면이 작품은 ... – Adolfo

답변

0

setParent(parentRecordID)으로 레코드의 부모를 설정할 때 나는이 동일한 오류를 만나고 또한 .none을 사용하여 CKReference을 생성했습니다. 부모를 설정 한 경우 표준 참조에서 .deleteSelf을 사용해야합니다. 그러나 내가 말할 수있는 것에서 부모를 설정하는 것은 을 사용하려는 경우에만 필요합니다. 나는 그것에 대해 더 많은 것을 썼다 here.