objective-Cにはプロトコルという概念があります。プロトコルは、オブジェクトの役割や振る舞いをあらわすメソッドの集合のことです。
ちなみに、java言語におけるインターフェースという概念は、objective-Cのプロトコルを取り入れています。
プロトコルは、メソッド宣言の集合であり、実現方法は各クラスに任されます。
プロトコルは以下のように宣言します。
@protocol プロトコル名
メソッド宣言;
@end
xcodeでプロトコルファイルを作成する場合は、
追加→新規ファイル→objective-Cprotocol→ファイル名入力
といった手順になります。
プロトコルファイルは通常ヘッダファイルとして記述します。利用する場合は、必要とするクラス宣言でインポートします。
プロトコルの利用はインターフェースで以下のように宣言します。
@interface クラス名 : スーパークラス名 <プロトコル名> {
インスタンス変数;
}
メソッドの宣言:
@end
プロトコルの宣言をした場合、インターフェースで宣言したメソッドと同様に、実装部で実装する必要があります。
又、プロトコルは複数指定することも可能です。インターフェースの<>内で【,】で区切って複数のプロトコル名を記述します。
@interface クラス名 : スーパークラス名 <プロトコル名1, プロトコル名2> {
インスタンス変数;
}
メソッドの宣言:
@end
プロトコルは継承も可能です。以下のように宣言します。
@protocol プロトコル名 <プロトコル名2>
メソッド宣言;
@end
プロトコルの意義は、プロトコルを採用したクラスがどういう機能に対応しているかを明確にすることです。クラスがどのプロトコルを採用しているかを知るには、Class ReferenceのConforms toグループで確認できます。
例えば、NSStringクラスならば、
- NSCoding
- NSCopying
- NSMutableCopying
- NSObject (NSObject)
0 コメント:
コメントを投稿