可選和必需的方法
預設情況下,協議中宣告的所有方法都是必需的。這意味著符合此協議的任何類都必須實現這些方法。
也可以宣告可選方法。只有在需要時才能實現這些方法。
使用 @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
最後一個示例使用兩個可選方法和兩個必需方法定義協議。