• 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
Double Initialize - is that how it should be?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Double Initialize - is that how it should be?


  • Subject: Double Initialize - is that how it should be?
  • From: Steve Cronin <email@hidden>
  • Date: Mon, 16 Mar 2009 21:21:34 -0500

Folks;

I use an object in my application called 'appDelegate'; it's a subclass of NSObject.

I instantiate this object in the main Nib file
This object has IBActions for the main menu and since it is -app delegate it is a kind on central dispatcher.


My question is this:
The +initialize is run twice when the app loads:
2009-03-16 20:21:42.690 XYZ[6676:813] *[AppDelegate initialize]
2009-03-16 20:21:42.781 XYZ[6676:813] *[NSKVONotifying_AppDelegate initialize]


Once for the object itself and then again as the instance in the Nib. That's how I read this. Is that wrong?

So I wonder if this is wasteful. I don't really want to run initialize twice.
It kind of torques my notion of a class that +initialize is run twice but I try and just play along....
I don't see how to use this IBActions and IBOutlets without instantiating.
Is the correct thing to do here break this object into smaller objects?


Thanks for any clarifying comments
Steve

+initialize {
//check minimum system OS - so I can gracefully tell the user what is deal is and how they should upgrade - if not min then die
//check whether or not the app has access to the ~/Library/Application Support - if not then die
//test for keyDown - to flip the logging level
}


- init {
//set this object as app delegate
[[NSApplication sharedApplication] setDelegate:self];
//NSFormatters and NSValueTransformers which must be done here so awakeFromNib binding transformers are set
[self setupApplicationBehavior];
//hang onto the prefPath
prefFile = [[[[NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"Preferences"] stringByAppendingPathComponent:[[[[NSBundle mainBundle] infoDictionary] valueForKey:@"CFBundleIdentifier"] stringByAppendingString:@".plist"]] retain];
//determine if this is the first time prefs have been used
firstPrefUse = (![[NSFileManager defaultManager] fileExistsAtPath:prefFile]);
//load userPrefs here so they can be used by -awakeFromNib
userDefaults = [[NSUserDefaults standardUserDefaults] retain];
[self registerFactoryDefaults];
return self;
)




_______________________________________________

Cocoa-dev mailing list (email@hidden)

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:
This email sent to email@hidden


  • Follow-Ups:
    • Re: Double Initialize - is that how it should be?
      • From: Dave Keck <email@hidden>
    • Re: Double Initialize - is that how it should be?
      • From: Jim Correia <email@hidden>
    • Re: Double Initialize - is that how it should be?
      • From: WT <email@hidden>
    • Re: Double Initialize - is that how it should be?
      • From: Sherm Pendley <email@hidden>
    • Re: Double Initialize - is that how it should be?
      • From: Chris Suter <email@hidden>
  • Prev by Date: Re: [Q] inconsistent naming for Core Graphics and Foundation?
  • Next by Date: Re: Enforcing trial software on Mac
  • Previous by thread: Re: Enforcing trial software on Mac
  • Next by thread: Re: Double Initialize - is that how it should be?
  • Index(es):
    • Date
    • Thread