Hi All,

Thanks to Jerry for the feedback.

What I thought was a framework question (why -init was being called instead of 
-initWithType:error: in my NSPersistentDocument subclass) turned out to instead 
be a tools question. I had placed a breakpoint in -initWithType:error: and 
execution did not halt there, so I asked why this method wasn't being called. 
Now, I believe the method was being called but the breakpoint was not halting 
execution. Why this happened remains a mystery because I tried many things in 
rapid succession until the breakpoints started working.

When they started working, I saw that everything worked exactly as Jerry said 
it should:
    -init was being called in both cases (new document and loading an existing 
document).
    -initWithType:error: was being called for new documents.

(And, yes, I am calling the super implementation in both.)

Thanks for the help,
Soong




----- Original Message ----
From: Jerry Krinock <je...@ieee.org>
To: Cocoa Developers <cocoa-dev@lists.apple.com>
Sent: Fri, November 20, 2009 11:07:18 PM
Subject: Re: [SOLVED] CoreData/NSPersistentDocument initialization

On 2009 Nov 20, at 12:04, Oftenwrong Soong wrote:

> However, initWithType:error is never called for new document creation (or any 
> document creation for that matter). I placed a breakpoint inside the method 
> and execution does not pause there. Instead, -(id)init gets called.

It's not 'instead'.  It's both.  When a new document is created, Cocoa invokes 
-initWithType:error:.  When you override this method, you must invoke super.  
-[NSPersistentDocument initWithType:error:] will then invoke -init.  Likewise 
if you override -init, invoke super.

> This is a problem because -(id)init is called when documents are opened as 
> well as created from scratch.

Actually it's rather handy for doing *some* initializations which you want done 
in both new and old documents.  I say *some* because your persistence stack is 
not yet functioning at this point.

_______________________________________________

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/oftenwrongsoong%40yahoo.com

This email sent to oftenwrongso...@yahoo.com



      
_______________________________________________

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 arch...@mail-archive.com

Reply via email to