Wie gehe ich beim Löschen von * ungespeicherten * Core Data-Objekten mit der Bereinigung externer Daten um?

In einem verwalteten Objekt habe ich einen Pfad zu einer Bilddatei im Container der Anwendung gespeichert.
Wenn das verwaltete Objekt gelöscht wird, sollte die Bilddatei in den Papierkorb verschoben werden. Dies sollte so spät wie möglich geschehen, damit ich die Undo-Funktion so lange wie möglich ausführen kann.

Ich verfolgte die Antworten auf diese Frage:Bereinigung externer Daten beim Löschen von Core Data-Objekten und überschrieb -didSave in meiner Unterklasse für verwaltete Objekte, um die Dateien in den Papierkorb zu werfen.

Es stellt sich heraus, dass dies nur funktioniert, wenn:

das verwaltete Objekt wurde hinzugefügt,der verwaltete Objektkontext wurde gespeichert,das verwaltete Objekt wurde gelöscht,der verwaltete Objektkontext wird gespeichert.

Im folgenden Fall wird -isSaved im verwalteten Objekt jedoch nicht aufgerufen:

das verwaltete Objekt wurde hinzugefügt,das verwaltete Objekt wurde gelöscht,der verwaltete Objektkontext wird gespeichert.

Ich verstehe, warum das passiert. Da das gelöschte Objekt nie dauerhaft gespeichert wurde, wird es nach dem Löschen nicht gespeichert. -DidSave wird nicht aufgerufen.

Now Ich suche nach einem anderen Ort, um die referenzierte Datei in den Papierkorb zu verschieben. Wo könnte das sein?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage