2015年5月29日金曜日

Objective-Cのプロトコル

正式プロトコル

通信におけるプロトコル(TCP-IPとか)なんかと同様、オブジェクトに共通するメソッドを規約として定義するやり方。

メソッドの中のアルゴリズムはおまかせだけど、メソッド名や引数、実行結果が同じであればいい。

以下のように宣言し、通常はヘッダファイルとして保存しておく。(実装ファイルはいらない)
@protocol プロトコル名
メソッドの宣言;
@end

そしてインポートして使う。
#import "プロトコル名.h"
@interface クラス名:スーパークラス名 <プロトコル名>
というのが書き方。
< >の間に何か書くのはObjective-Cで書いてれば知らず知らず使ってるよね。


クラス共通の規約だから、プロトコルに宣言されたメソッドは全部実装してやらないとダメ。



非形式プロトコル

プロトコルの一種だけど、意味合いがちょっと違う。
メソッドの宣言をするのにNSObjectのカテゴリとして宣言する。
メソッドの実装は必須じゃない。
delegateを利用するのによく使う。

よくわかんないでしょ? 俺もよくわかんないw まあそういうものがあるっつーことで。
delegateを自作するなら、こっちをよく使うよね。

0 件のコメント:

コメントを投稿