When reading up on NSObject's class method 'initialize', I found these
two quotes in the docs:
"Each class receives the initialize message just once from the runtime
"Normally the runtime system sends a class just one initialize
message. However, if for some reason an application or the runtime
system generates additional initialize messages, it is a good idea to
prevent code from being invoked more than once"
I can see where an application developer may (accidentally?) have code
to call initialize more than once. But why do the docs have
conflicting statements regarding the runtime?
Bill Cheeseman has already replied to this, but I'd like to point out
one way in which these two statements are not contradictory. The
*runtime system* sends the initialize message on its own behalf exactly
once, but it's possible that *applications* may send the initialize
message -- or, possibly, some chain of events might cause something
else to send the class the initialize message.
I have no problem modifying my initialize implementations with a
one-shot flag if need be. However, if the runtime is only ever
suppose to call initialize once, I'll then file a bug against the
I do think they ought to be clarified. "The runtime system sends each
class the +initialize method exactly once on its own behalf, but other
classes or the +initialize message of subclasses may also send an
+initialize method. As a result, the runtime system does not guarantee
that +initialize will only be called once, and so it may be necessary
to explicitly prevent code from being invoked more than once."
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