Re: Order of instantiation within a NIB
Re: Order of instantiation within a NIB
- Subject: Re: Order of instantiation within a NIB
- From: "John C. Randolph" <email@hidden>
- Date: Mon, 11 Apr 2005 13:48:32 -0700
On Apr 11, 2005, at 10:36 AM, John Brownlow wrote:
I have a main editor window which has several drawers. Each of
these drawers is quite complicated so I gave each one its own
controller to separate out the logic, although they are staying in
the same NIB because they are fundamentally connected.
Just for my own personal ease I would rather instantiate these
controllers in the NIB so I can hook them up with IBOutlets etc.
But then the question becomes, how to initialize them.
If I could rely on all the objects in the NIB being initialized
when they are created then they could initialize themselves, but I
suspect that is not how things work and so not all the objects they
need will be there when they are instantiated.
The alternative is to put the initialization in the
mainEditorWindowController which loads the NIB, but that grates
because I feel the objects should self-initialize. What is good
practice here? Should I have a -NIBDidLoad method that the
windowController calls, or a notification, or what?
In your -init method, perform whatever initialization you like that
does *not* depend on any of your outlets being in place. If you need
to perform initialization that does depend on the connections in the
nib, then implement -awakeFromNib:
- (void)awakeFromNib
Prepares the receiver for service after it has been loaded from an
Interface Builder archive, or nib file. An awakeFromNib message is
sent to each object loaded from the archive, but only if it can
respond to the message, and only after all the objects in the archive
have been loaded and initialized. When an object receives an
awakeFromNib message, it’s guaranteed to have all its outlet instance
variables set.
-jcr
John C. Randolph <email@hidden> (408) 974-8819
Sr. Cocoa Software Engineer,
Apple Worldwide Developer Relations
http://developer.apple.com/cocoa/index.html
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden