NS_DESIGNATED_INITIALIZER
@interface TestObject : NSObject
- (instancetype)initWithTitle:(NSString *)title NS_DESIGNATED_INITIALIZER;
@end
@implementation TestObject
- (id)init{
return [self initWithTitle:@""];
}
- (instancetype)initWithTitle:(NSString *)title{
if (( self = [super init])) {
}
return self;
}
@end
NS_DESIGNATED_INITIALIZER关键字 意思是最终被指定的初始化方法,在interface只能用一次而且必须以init开头的方法。
在m文件中,不管init或者其他的初始化方法都要调用上面的initWithTitle方法初始化,因为我么用到了NS_DESIGNATED_INITIALIZER关键字.