> On Oct 23, 2014, at 15:26, Kyle Sluder <k...@ksluder.com> wrote:
> 
> On Thu, Oct 23, 2014, at 05:06 PM, Greg Parker wrote:
>> 
>>> On Oct 23, 2014, at 2:18 AM, Kevin Meaney <k...@yvs.eu.com> 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
clarkc...@gmail.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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to