1、new:在Cocoa中使用new方法创建对象只是一种辅助方法。
2、[[Object alloc] init]
- alloc:分配对象,从系统中获取一块足够大的内存,用来存放对象的全部实例变量,同时alloc方法将这块内存区域全部初始化为0。例如所有BOOL类型变量初始化为NO,所有int类型变量初始化为0,所有float类型变量初始化为0.0,所有指针初始化为nil。所有刚刚分配的对象不能立即使用,必须先初始化后才能是有,不然会出现一些随机BUG。
- init:初始化,从系统获取一块内存用于存储对象,返回正在初始化的对象,因为初始化返回的对象可能与分配的对象不同,所以一般alloc和init要嵌套使用。在这儿为什么会存在不同呢,这跟Cocoa的类簇有关系。
3、if (self = [super init]) {}
- 这行代码意味着初始化的时候,self有可能会改变。首先运行的是:
这句代码的作用是让超类完成初始化工作,[super init]