@init 自定义

相当于构造方法,有的时候初始化的时候有一些默认值,还有就是页面加载数据的时机问题,防止加载了页面再填数据

声明:

  -(instancetype)initWithName:(NSString *)aName andage:(int)aAge;   //自定义的初始化方法必须以init开头

实现:

  -(instancetype)initWithName:(NSString *)aName andage:(int)aAge{

      if (self =[super init]) {       //调用父类方法init 并且判断是否初始化成功

          self.name = aName;

          self.age = aAge;

      }

      return self;

  }

调用:

  Person *hrr =[[Person alloc]initWithName:@"hrr" andage:20];

 

ps:

自定义的时候可以有三种返回类型  意义相同

  -(Person *)initWithName

  -(id)initWithName     //id相当于void

  -(instancetype)initWithName      //instancetype对象类型

原文地址:https://www.cnblogs.com/huoran1120/p/5057554.html