让我们说我正在创建一个带有自定义初始化程序的协议,我希望我的某些模型对象符合这些协议。
@protocol SomeProtocol <NSObject>
- (instancetype)initWithContext:(Context *)context;
@end
在执行此操作时,我还希望-[NSObject init]
不可用。我之前完成的方式是在标题中声明类似的内容:
- (instancetype)init NS_UNAVAILABLE;
或:
- (instancetype)init __attribute__((unavailable("Use -initWithContext:")));
是否有办法在协议中包含类似上述的内容,以便符合此协议的任何类都将使其默认初始化方法不可用?
要明确,我想知道以下内容是否有效:
@protocol SomeProtocol <NSObject>
- (instancetype)initWithContext:(Context *)context;
- (instancetype)init __attribute__((unavailable("Use -initWithContext:")));
@end