转载

指定初始化方法

不能指定实例的初始化方法,是OC的一个缺陷。你无法在语法上面指定实例的初始化方法,例如你什么时候都可以调用init方法去初始化一个实例,这就导致一些实例初始化的时候没办法获得必要地参数。

为了解决这个问题,目前可以通过编译器声明达到,如下

- (instancetype)init __attribute__((unavailable("Invoke initWithOperation: instead."))); - (instancetype)initWithOperation:(NSOperation *)operation dispatchQueue:(dispatch_queue_t)dispatchQueue NS_DESIGNATED_INITIALIZER; 

指定初始化方法不可用

__attribute__((unavailable("Invoke initWithOperation: instead.")))

指定初始化方法

NS_DESIGNATED_INITIALIZER

正文到此结束
Loading...