当需要在实例化类的同时进行参数传递时,就可以使用自定义构造方法解决
自定义构造方法就是自定义一个init方法
- 自定义构造方法一定是对象方法
- 返回值一定是 id/instancetype
- 方法名称一定以init开头,init后面的第一个字母必须大写
#import <Foundation/Foundation.h>
@interface Person : NSObject
@property int age;
@end
@implementation Person
// 当需要在实例化类的同时进行参数传递时,就可以使用自定义构造方法解决
- (instancetype)initWithAge:(int)age
{
self = [super init];
if (self) {
self.age = age;
}
return self;
}
@end
int main(int argc, const char * argv[]) {
Person *p = [[Person alloc] initWithAge:20];
NSLog(@"%i", [p age]);
return 0;
}