使协议中的方法不可用

时间:2015-03-02 16:40:42

标签: ios objective-c protocols nsobject

让我们说我正在创建一个带有自定义初始化程序的协议,我希望我的某些模型对象符合这些协议。

@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

0 个答案:

没有答案