Objective-Cでdelegateを使うときのメモです。
「delegateとは」といった説明は何にもありません。単に書き方だけです。
delegateの呼び出し側(「XXX」とする)
// XXX.h
@protocol xxxDelegate
-(void)foo;
@end
@interface XXX : スーパークラス名
@property (retain, nonatomic) id <xxxDelegate> delegate;
@end
// XXX.m
@synthesize delegate;
// 呼び出す場所で
[delegate foo];
呼び出される側(「YYY」とする)
// YYY.h
#import "XXX.h"
@interface YYY: スーパークラス名 <xxxDelegate>
// delegateメソッドを宣言
-(void)foo;
// YYY.m
XXX *xxx; // インスタンスを作って
xxx.delegate = self; // 自分を呼び出すようにしておく
// 実装
- (void)foo
{
…
}
コメント