iPhone開発本を読んでいて知ったのだが Objective-C 2.0 ではプロトコルに @optional が追加され、実装が任意のメソッドを定義できるようになっている。
Objective-C 2.0プログラミング言語 > 任意のプロトコル(日本語)
こんな感じ(上記 ADCリファレンス より引用)
@protocol MyProtocol
- (void)requiredMethod;
@optional
- (void)anOptionalMethod;
- (void)anotherOptionalMethod;
@required
- (void)anotherRequiredMethod;
@end
知らなかった。WEBの情報だけでなくたまには本も読むものだ(と思ったりした)。
(参考)
Wikipedia - Objective-C: Protocols
以下、上記サイトから引用。
Objective-C 2.0 added support for marking certain methods in a protocol optional; the compiler will not enforce that such methods are implemented.
iPhoneアプリ開発まっしぐら - iPhoneアプリ開発における 非形式プロトコル (informal protocol) の利用について
# なるほど。非形式なプロトコルを使わないで任意実装メソッドが定義できるようになったのか。