What happens when you call -init multiple times on one object, are there some hidden side effects? Can you assume that no additional memory is allocated? Would anything go against such an idea?
+20
A:
Calling -init
multiple times is undefined, unsupported, and will lead to bugs, crashes, and other unexpected behavior.
Many classes -- NSString
, NSArray
, and NSDictionary
, for example -- don't actually allocate anything when the +alloc
method is called. It isn't until one of the various -init*
methods are called that the object has enough context to figure out the most efficient means of doing whatever you ask.
bbum
2010-01-01 20:36:07
+1
A:
One thing I'd add to Bill's answer is that when writing your own -init
methods, code defensively and don't assume that they'll only be invoked once.
NSResponder
2010-01-02 02:43:20