During a program run, multiple class objects are created, and only one initialize is called. The creation of several class objects calls Init several times;
Create a Class AA, overriding the Initialize and Init methods, respectively
#import "aa.h"@implementationAA+ (void) initialize{NSLog (@"%s", __func__); }-(instancetype) init{ Self=[Super Init]; if(self) {NSLog (@"%s", __func__); } returnSelf ;}@end
Create two AA class objects in Viewcontrller
#import " ViewController.h " #import " aa.h " @interface Viewcontroller () @end @implementation Viewcontroller-(void) viewdidload { [super Viewdidload]; *A1 = [[AA alloc]init]; *A2 = [[AA alloc]init];} @end
The printing results are:
Conclusion: In the course of running a program, multiple class objects are created, and only one initialize is called. The creation of several class objects calls Init several times;
Creating a class BB inherits from the AA class
#import " aa.h " @interface Bb:aa @end
Create two BB class objects in Viewcontroller
#import " ViewController.h " #import " BB. @interface viewcontroller ()@end@implementation Viewcontroller -(void) viewdidload { [super Viewdidload]; *B1 = [[BB alloc]init]; *B2 = [[BB alloc]init];} @end
Printing results:
Conclusion: If it is a subclass, create several instances, initialize and Init will be called several times
Methods such as iOS Initialize and init