[objective-c]プロトコル 2008/11/10

Objective-Cです。プロトコル(protocol)です。
このプロトコルはJavaでいうところのinterfaceだと思います。
説明としては、「実装が期待されてるメソッドの定義集」って感じでしょうか。


宣言は、@protocolで。
メソッドを記述していきます。

#import <Foundation/NSObject.h>

@protocol MyProtocol
- (void)mymethod;
@end

@interface A:NSObject <MyProtocol>
@end


実装側。
#import "A.h"

@implementation A
- (void)mymethod {}
@end


実装せずコンパイルすると、
$ gcc *.m -framework Foundation
A.m:5: warning: incomplete implementation of class 'A'
A.m:5: warning: method definition for '-mymethod' not found
A.m:5: warning: class 'A' does not fully implement the 'MyProtocol' protocol


次に、Objective-C2.0では、プロトコルで定義されたものをすべて実装しなくてもすむオプションが用意されています。

@optional
@required


@optionalをつけると実装がなくてもコンパイラにおこられません。

: