自定义的init方法和重写的init方法

自定义一个init方法 必须以initWith开头

Person *p=[[Person alloc]init];

Person *p1=[Person new];//(也调用了系统的init方法或者是重写的init方法   与上式等价

#import "Person.h"

@implementation Person
//重写init(使对象一创建就自带初始值)
//instancetype 任意的对象类型 id(旧版本)此处也可以写Person
-(instancetype)init{
    //调用父类初始化自己
    self = [super init];
    //判断是否初始化成功 如果失败返回值为nil
    if (self) {
        //可以做额外的事情
        self.name=@"张三";
        self.age=17;
    }
    
    return self;
}

//自定义init (使在创建对象时就可以赋值 接收来自外部的数据 例如:界面的转换)
-(instancetype)initWithName:(NSString *)name andage:(int)aAge{
    self = [super init];
    if (self) {
        self.name=name;
        self.age = aAge;
    }
    return self;
}
@end

 

posted @ 2019-02-17 18:21  kinghyt  阅读(971)  评论(0编辑  收藏  举报