In Objective-C, what is the difference between the init method (i.e. the designated initializer for a class) and the initialize method? What initialization code should be put in each?
In Objective-C, what is the difference between the init method (i.e. the designated initializer
Share
-initis an instance method, used to initialize a particular object.+initializeis a class method, run before any instances of the class are created and before other class methods are run.+initializeisn’t something you use most of the time, but it’s handy for setting up any static variables that the class as a whole might use, or for ensuring that certain conditions are met before any instances are created.The code that belongs in an
-initmethod is described thoroughly in the Implementing an Initializer section of The Objective-C Programming Language. There’s also some discussion of initializing classes (i.e.+initialize) and why you might need to do that in the same document, in the Class Objects section. The code that goes into+initializewill generally be strongly tied to the special functionality of the class that requires you to initialize it in the first place. One important thing to keep in mind in+initialize(and in any class method) is thatselfin a class method refers to the class itself, not an instance of the class.