NS_UNAVAILABLE的作用是直接禁止此方法的使用,一般常见用法如下:
+ (instancetype)new NS_UNAVAILABLE;
+ (instancetype)init NS_UNAVAILABLE;
这样就不能直接使用这两种创建实例的方法,而需要使用开源库自定义的初始化方法,从而确保了创建实例的统一性
NS_EDSIGNATED_INITIALIZER
NS_EDSIGNATED_INITIALIZER的作用是指定构造器,通常来说指定初始化函数对一个类来说非常重要,参数也会比较多,为了适应不同的初始化需求就有了便利初始化函数。
- (instancetype)initWithName:(NSString *)name NS_EDSIGNATED_INITIALIZER;