可选和必需的方法
默认情况下,协议中声明的所有方法都是必需的。这意味着符合此协议的任何类都必须实现这些方法。
也可以声明可选方法。只有在需要时才能实现这些方法。
使用 @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
最后一个示例使用两个可选方法和两个必需方法定义协议。