Objective-Cのプロトコルの宣言と定義について。
ネット上で各種サンプルをみていると、宣言時と定義が同じタイミングで行われており、戻り値の定義でvoid以外が使えなかったり、引数にNSArrayや独自クラスなどが使えなかったりしていた。
どうすれば使えるかという事についてメモ。
//ヘッダーファイル #import <Foundation/Foundation.h> @protocol testObjectDelegate; //この部分ではプロトコルの宣言だけで終了。 @interface testObject : NSObject @property (nonatomic,retain) id delegate; -(void)buttonPushed; @end @protocol testObjectDelegate <NSObject> //ここにプロトコルの定義を記載。 - (void)delegateMethod:(testObject*)testobject; //自分を引数としてデリゲートの利用先へ送る事が出来る。 @end
デリゲートの宣言はクラスのヘッダーファイルの先頭で、デリゲート定義はクラスのinterface定義後に定義。これで使えるようになる。