How to synchronize my MacOS-X application with Core-Data automatic Undo management?
How to synchronize my MacOS-X application with Core-Data automatic Undo management?
- Subject: How to synchronize my MacOS-X application with Core-Data automatic Undo management?
- From: Motti Shneor <email@hidden>
- Date: Sun, 24 Aug 2014 18:07:53 +0300
Hi.
My OS-X app is using ARC, is CoreData Document-Based (using the old NSPersistentDocument) and uses 10.9 SDK.
Up until now, I did nothing on my behalf to support user Undo/Redo, still the application seemed to work fine. I was very impressed with Cocoa (this millionth time).
However. In some of my application controller objects, I maintain and rely on references to CoreData entities (NSManagedObject instances) for the application state (The current entity I'm working on, etc.)
When user selects "Undo" (or cmd-Z) - my controllers lose track of the application state. Last created entities get deleted by Core-Data, and my references point to dead entities. In short - I lose synchronization with my model.
If I set those entity references to "strong" then the NSManagedObjects can't be released of course, but I'll soon crash because they were deleted from CoreData. If I make them weak references insted, they will nullify upon undo --- but no one will ever set these references to their previous values (the older state).
It seems I need to add my own "undo actions" to the automatic mechanism, but I don't know WHEN is the right time to do it, WHAT undo-managed I should address, and HOW to group my "undo" and "redo" actions, with the CoreData's undo actions.
I tried to dive into the Undo architecture documentation, but got confused very soon, especially because CoreData does its thing independently of other parts of my program.
Any hint or sample-code reference, or clarifying note will be greatly appreciated!
Motti Shneor.
---
But they are useless ---
they can only provide answers!
(Pablo Picasso 1881-1973 about Computers).
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden