I've found the workaround, at least.
Objects are in a tree formation with parent and children relationships. Delete
Rule is Cascade.
Steps to reproduce:
• Open a particular document which contains 4 objects
Root1
OldObject2
OldObject3
OldObject4
• Insert 3 new objects, so the tree is now
Root1
OldObject2
OldObject3
NewObject5
NewObject6
NewObject7
OldObject4
• Save
• Delete the 3 new objects
• Save
• Undo
The trick is the order in which they are deleted. If the child NewObject7 is
deleted before its parent NewObject6, Undo will succeed. If the parent is
deleted first, Undo will fail. In my app, the order is random due to
enumerating an NSSet.
I think I remember seeing, when looking at the invocation on the undo stack
earlier today, in that NSKnownKeysDictionary1, that the 'parent' relationship
of the un-restorable object was null. But all properties in my data model are
optional. Been there and done that with Core Data's validation :(
Some stumpers:
• If I consolidate the first three steps, opening a document which already
contains all 7 objects, Undo always succeeds.
• If I skip the second Save step, Undo always succeeds.
_______________________________________________
Cocoa-dev mailing list ([email protected])
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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com
This email sent to [email protected]