Objective-C/プロトコル

Objective-C/プロトコル

バージョンと製造年月日

2012-03-09

プロトコルとは

Javaのインタフェースと同じ機能の何かだよ。

つまり、実装継承無しの多重継承。あるプロトコルをくっつけたら実装側はそれをかならず実装しなければならない。

使う側は絶対に実装してあるものとして使える。

書き方

使う場合

クラス宣言のときにする。

@interface Hoge : NSObject <HogeDelegate, PiyoDelegate>{
}
@end

スーパークラスの記述に続き括弧で括ってプロトコルをコンマ区切りでズラズラ書く。 今までセパレータがスペースとコロンだったのにここでいきなりコンマ参上。

プロトコルは内部挙動の取り換えのために外部から導入するロジックの塊として使われ方が多いので、~Delegateという名前が多い。 Javaでいうならばインタフェースに~ableというものが多いのと似ている。

あとは宣言と実装でそれぞれプロトコルのシグネチャに合わせたメソッドを宣言と実装すればよろし。

作る場合

プロトコルそのものを作る場合は例の@に続きprotocolキーワードを書いて

@protocol HogeDelegate
- (int)piyopiyo:(int)fuga;
- (int)abc:(int)xyz;
@end

あとはメソッド宣言と同じでシグネチャをズラズラ

タグ

objectivec/protocol.txt · 最終更新: 2012-03-09 16:18 by ore