如果定義NS_DESIGNATED_INITIALIZER,大多是不想讓調(diào)用者調(diào)用父類的初始化函數(shù)畜眨,只希望通過該類指定的初始化進(jìn)行初始化,這時(shí)候就可以用NS_UNAVAILABLE宏阶祭。
例如 NSTimer 類中:
- (instancetype)initWithFireDate:(NSDate *)date interval:(NSTimeInterval)ti target:(id)t selector:(SEL)s userInfo:(nullable id)ui repeats:(BOOL)rep NS_DESIGNATED_INITIALIZER;
此方法被NS_DESIGNATED_INITIALIZER;修飾
那么 NSTimer 所有的初始化方法內(nèi)部都必須實(shí)現(xiàn)此方法.