init(初始化)自定义

init自定义个目的相当于构造方法,有的时候初始化的时候有一些默认值,还有就是页面加载数据的时机问题,防止加载了页面再填数据(不同步)。

-(instancetype)initWithName:(NSString *)aName andage:(int)aAge{
     if (self =[super init]) { //调用父类方法init 并且判断是否初始化成功
         self.name = aName;
         self.age = aAge;
     }
     return self;
}

自定义的时候可以有三种返回类型使用意义相同
    -(Person *)initWithName
    -(id)initWithName //id是identify的缩写,某种程度上相当于void
    -(instancetype)initWithName //是NSObject中init的类型,推荐使用

你可能感兴趣的:(init(初始化)自定义)