Come funziona .DeleteSelf? Documenti dice:CK: L'attributo .DeleteSelf non ha effetto
Quando l'azione dell'oggetto di riferimento è impostato su CKReferenceActionDeleteSelf, il target di riferimento, cioè il record memorizzato nel recordID del riferimento di proprietà-diventa il proprietario del documento di origine. L'eliminazione del record di destinazione (proprietario) elimina tutti i record di origine .
ma la mia impressione è che l'eliminazione di un obiettivo non eliminerà sempre la fonte. Ed è abbastanza fastidioso quando rimane nel contenitore, il client lo scarica e si aspetta che il punto di riferimento venga da qualche parte, ma la destinazione non esiste quando si crea una fetta dell'archivio dati del server sul client?
Come si considera questo caso? Ignori quel tipo di record? O periodicamente cerchi l'archivio CloudKit, cercando i record corrotti per eliminarli?
Oppure invece di eliminare un record è meglio impostare un attributo che si trovi in uno stato cancellato, ma conservarlo nel database?
Si dovrebbe essere in grado di fare affidamento sul .DeleteSelf. Se non funziona, dovresti creare una segnalazione di bug su http://bugreport.apple.com Se vuoi creare una soluzione per questo bug e dato che hai il controllo di ciò che accade nel momento in cui stai rimuovendo un record Penso che sarebbe meglio anche rimuovere manualmente tutti i record correlati nello stesso momento. –
Sto anche osservando un comportamento intermittente con .DeleteSelf –
Mi sto imbattendo in questo problema. Ho diverse tabelle con una relazione uno-a-molti con una tabella principale. Nel database pubblico, aggiungo il record principale e poi alcuni record nelle altre tabelle. Se tutto viene eseguito da un utente e nessun altro utente nemmeno accede ai dati, quindi eliminando i risultati del record master in tutti gli altri record eliminati come previsto. Ma quando un altro utente accede ai dati, la cancellazione a cascata non avviene e viene cancellato solo il record principale. Sembra inutile se non puoi contare su questa funzione. – rmaddy