Person *p = [Person new];
A.句子解析;
1.完整的创建了一个可用对象
2.分配存储空间,用的是内部的类方法+alloc
3.初始化,用的是对象方法。-init
B.过程剖析
1.首先调用+alloc类方法分配空间,Person *p1 = [Person alloc];
2.接下来用-init初始化;Person *p= [p1 init];
C.以后创建类对象就用这样的
Person *p = [[Person alloc] init];代替Person *p = [Person new];
alloc用于分配空间。init用于初始化
D.在实现中(@implemention 类名)重写-init方法。
- (id)init
{
//一定要调用super的init方法:初始化父类声明中的一些成员变量和其他属性。
//[super init];(会直接调用父类) 初始化当前对象 用的就是self(有的时候也不相同)。
//具体可以这样写;
Self = [super init];
If (self != nil)
{
//初始化成功进入
_age = 10;
}
//返回一个已经初始化的对象
return self;
}
整体可以这样简写;
- (id)init
{
If ( self = [super init] )
{
-age = 10;
}
return self;
}
|
|