关于init方法的解释
- (id)init{ self = [super init]; if (self) { //.......... } return self;}
[super init]的返回值和self的类型都是id类型,所以可以这么写。
如果父类初始化失败,会返回nil。所以要判断父类是不是初始化成功了,才能做子类的初始化。因为万一没有初始化成功,相当于对nil操作,会报exception。