您的位置:首页 > 移动开发 > IOS开发

ios initialize和init等方法

2016-06-16 17:28 537 查看
在程序运行过程中,创建多个类对象,只会调用一次initialize [ɪˈnɪʃəˌlaɪz] 。而创建几个类对象就会调用几次init;

创建一个类aa,分别重写 initialize和init方法

#import "aa.h"

@implementation aa

+ (void)initialize{
NSLog(@"%s",__func__);

}

- (instancetype)init{
self = [super init];
if (self) {
NSLog(@"%s",__func__);
}
return self;
}
@end


在viewcontrller里创建两个aa类的对象

#import "ViewController.h"
#import "aa.h"

@interface ViewController ()
@end

@implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad];
aa *a1 = [[aa alloc]init];
aa *a2 = [[aa alloc]init];
}
@end


打印结果是:

      


结论:在程序运行过程中,创建多个类对象,只会调用一次initialize。而创建几个类对象就会调用几次init;

创建一个类bb 继承自aa类

#import "aa.h"

@interface bb : aa

@end


在ViewController里创建两个bb类对象

#import "ViewController.h"
#import "bb.  
@interface ViewController ()
@end

@implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad];

bb *b1 = [[bb alloc]init];
bb *b2 = [[bb alloc]init];
}
@end


打印结果:

    


结论:如果是子类的话,创建几次实例,initialize和init就会被调用几次
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: