可選和必需的方法

預設情況下,協議中宣告的所有方法都是必需的。這意味著符合此協議的任何類都必須實現這些方法。

也可以宣告可選方法。只有在需要時才能實現這些方法。

使用 @optional 指令標記可選方法。

@protocol NewProtocol
- (void)protocolMethod:(id)argument;
@optional
- (id)anotherMethod;
@end

在這種情況下,只有 anotherMethod 被標記為可選; 假定不需要 @optional 指令的方法。

@optional 指令適用於以下方法,直到協議定義結束,或者直到找到另一個指令。

@protocol NewProtocol
- (void)protocolMethod:(id)argument;
@optional
- (id)anotherMethod;
- (void)andAnotherMethod:(id)argument;
@required
- (void)lastProtocolMethod;
@end

最後一個示例使用兩個可選方法和兩個必需方法定義協議。