可选和必需的方法

默认情况下,协议中声明的所有方法都是必需的。这意味着符合此协议的任何类都必须实现这些方法。

也可以声明可选方法。只有在需要时才能实现这些方法。

使用 @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

最后一个示例使用两个可选方法和两个必需方法定义协议。