Objectiv-Cのプロトコル

プロトコルとは、ある機能に必要なメソッド宣言をまとめたもの



具体例。画面をタッチした時の処理をまとめたもの。
cocos2dのソースです(CCTargetedTouchDelegate.h)。

@protocol CCTargetedTouchDelegate <NSObject>

/** Return YES to claim the touch.
 @since v0.8
 */
- (BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event;
@optional
// touch updates:
- (void)ccTouchMoved:(UITouch *)touch withEvent:(UIEvent *)event;
- (void)ccTouchEnded:(UITouch *)touch withEvent:(UIEvent *)event;
- (void)ccTouchCancelled:(UITouch *)touch withEvent:(UIEvent *)event;
@end

注意点は「@optional」。
この記述以下のメソッドは実装しなくても良い。
つまり上の例では、「ccTouchBegan」は実装必須だが、
「ccTouchMoved」「ccTouchEnded」「ccTouchCancelled」は必須ではない。


使用例。ヘッダファイル。

@interface AkasanSprite : CCSprite
<CCTargetedTouchDelegate>
{
}
@end

さらに、メインファイルに実装を書く。