> On Oct 23, 2014, at 15:26, Kyle Sluder <[email protected]> wrote: > > On Thu, Oct 23, 2014, at 05:06 PM, Greg Parker wrote: >> >>> On Oct 23, 2014, at 2:18 AM, Kevin Meaney <[email protected]> wrote: >>> >>> From what I understand any code that is executed before main is called is >>> done so before the objective-c runtime is fully setup which means you have >>> no guarantees about what will work. In objective-c++ where you can create >>> static C++ objects that results in objective-c being called it is an easy >>> way to make difficult to track crashes. >> >> The situation is much more favorable than that. Problems with Objective-C >> initialization are uncommon. >> >> The initialization order is generally like this: >> 1. Everything in libraries you link to is initialized. >> 2. Your classes' +load methods run. Each class runs +load before its >> subclasses. (Timing of category +load is more complicated, but in most >> cases they also run now.) >> 3. Your C and C++ static constructors run. >> 4. main() > > Is it accurate to say that Objective-C +initialize methods happen, at > the earliest, as part of Step 3?
No. +initialize is called the first time a particular class or its subclasses are sent a message (other than +load or +initialize). If you never call any methods on a class or its subclass, then that class’ +initialize will never be called. -- Clark Smith Cox III [email protected] _______________________________________________ Cocoa-dev mailing list ([email protected]) 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: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to [email protected]
