• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Order of instantiation within a NIB
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


  • Follow-Ups:
    • Re: Order of instantiation within a NIB
      • From: John Brownlow <email@hidden>
References: 
 >Order of instantiation within a NIB (From: John Brownlow <email@hidden>)

  • Prev by Date: Re: WWDC2k5 and ROI
  • Next by Date: Re: Command Line Arguments
  • Previous by thread: Re: Order of instantiation within a NIB
  • Next by thread: Re: Order of instantiation within a NIB
  • Index(es):
    • Date
    • Thread