In Apple's DepartmentsAndEmployees Sample Code project, the document (MyDocument) has this instance variable:

     NSManagedObject* department ;

I view this 'department' as special "Document Settings Ivar". There is always one and only one of them in each document. As a matter of fact, from the user's viewpoint, each document is a Deparment; the document is the Department and vice versa. It seems to me that most Core Data Document-Based Applications will have such a Document Settings Ivar in their Document. If the project were a word processor, for example, the Document Settings Ivar would store page size, margins, etc.

In DepartmentsAndEmployees, initWithType:error: is overridden to customize creation of new documents. I've copied the code here...

- (id)initWithType:(NSString *)type error:(NSError **)error
{
    self = [super initWithType:type error:error];
    if (self != nil)
    {
NSManagedObjectContext *managedObjectContext = [self managedObjectContext]; [self setDepartment:[NSEntityDescription insertNewObjectForEntityForName:@"Department" inManagedObjectContext:managedObjectContext]];

// To avoid undo registration for this insertion, removeAllActions on the undoManager. // First call processPendingChanges on the managed object context to force the undo registration
        // for this insertion, then call removeAllActions.
        [managedObjectContext processPendingChanges];
        [[managedObjectContext undoManager] removeAllActions];
        [self updateChangeCount:NSChangeCleared];
    }
    return self;
}

Documentation for -processPendingChanges says "causes changes to registered managed objects to be recorded with the undo manager". Well, since the intent is "to avoid undo registration for this insertion", should not the -processPendingChanges message be sent ^before^ -setDepartment:? I made this change in the code, built, tested a new document with Undo and all seems to still work fine.

Actually, it seems that the -processPendingChanges message could simply be deleted because how could there be any other pending changes before -init anyhow?

Thanks,

Jerry Krinock
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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]

Reply via email to