person *p1 =[person new]
//等价于
person *p1 = [[person alloc] init]
-(instancetype)init
{
self = [super init];
if (self !=nil) {
self.age =17;
}
return self;
}
为什么要调用父类的init方法。 因为父类的init方法,会初始化父类的属性,所以必须要保证当前对象中的父类属性也同时被初始化
为什么要赋值给self 因为调用父类的init方法,会返回初始化的对象,实际上返回的就是当前对象,但是我们要判断是否初始化成功
//实现
- (instancetype)initWithName:(NSString *)name andAge:(int)age
{
if (self =[super init]) {
self.name = name;
self.age = age;
}
return self;
}
//调用
Person *d1 = [[Person alloc] initWithName:@"小明" andAge:16];