NS_DESIGNATED_INITIALIZER

如果定义NS_DESIGNATED_INITIALIZER,大多是不想让调用者调用父类的初始化函数,只希望通过该类指定的初始化进行初始化,这时候就可以用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 所有的初始化方法内部都必须实现此方法.

你可能感兴趣的:(NS_DESIGNATED_INITIALIZER)