Ich versuche die Unterstützung rückgängig zu machen, die Core-Daten auf dem iPhone verwenden, und ich stieß auf ein paar Probleme.Rückgängigmachen der Verwaltung mit Core-Daten
Ich habe derzeit ein paar verwaltete Objekte eingerichtet, aber wenn ich Änderungen an ihren Eigenschaften mache, werden diese Änderungen nicht vom Undo-Manager aufgezeichnet. Meines Erachtens sollte Core Data dies automatisch einrichten und ich sollte in der Lage sein, grundlegende Änderungen rückgängig zu machen und wiederherzustellen, Änderungen zu erstellen und gelöschte Objekte zu löschen.
Gibt es eine spezielle Möglichkeit, Änderungen an den Objekten vorzunehmen, damit sie vom Undo Manager erfasst werden? Oder sollte ich Aktionen für jede Änderung rückgängig machen?
Angenommen, die Anwendung wird in eine Detailansicht verschoben, um ein bestimmtes Objekt zu bearbeiten. Ich möchte in der Lage sein, alle Änderungen rückgängig zu machen, wenn man sagt, dass der Abbrechen-Knopf gedrückt ist. Würde Gruppierung rückgängig machen hier anwendbar? Was ist der Unterschied zwischen der Übergabe einer Gruppe und einem anderen Undo-Manager, der die feineren Aktionen in der Detailansicht verwaltet, anstatt nur einen Undo-Manager zu verwenden (den, der zum Kontext des verwalteten Objekts gehört)?
Danke!
Dank Ben +1, schöne prägnante Antwort –
ich habe Erstellung oder Einstellung eines Undo-Manager nicht in meinem Code, noch Rückgängig Werke pro perfekt. Verwaltete Objektkontexte verfügen bereits über einen Undo-Manager. Alles, was Sie tun müssen, ist, dass ihr Fensterdelegat etwa Folgendes implementiert: '- (NSUndoManager *) windowWillReturnUndoManager: (NSWindow *) Fenster { return [[DB managedObjectContext] undoManager]; } '. –
@ IvanVučica das stimmt bei der Arbeit mit den OSX-Frameworks, aber wenn Sie mit den iOS-Frameworks arbeiten gibt es keine NSWindow, und aus Gründen der geringen Gewicht, verwaltete Objekte kommen nicht mit einem Rückgängig-Manager. – Intentss