2011-01-12 21 views
2

目的Cのjavaのinterfaceと同等の概念は何ですか?私はインターフェイスを作成し、私のインターフェイスを継承する多くのクラスで共有される共通の変数とメソッドを定義します。外のクラスが子クラスを使用したい場合、正しい子クラスを指す私のインターフェースの参照オブジェクトを取得します。実行時の多態性と継承を実装する

Objective Cでこれを達成する方法は?

答えて

5

JavaインタフェースのObjective Cに相当するものは「protocol」と呼ばれます。

小さなイントロもhere見つけることができる、とあなたは完全なリファレンスをしたい場合、それはObjective-Cでat Apple

5

だ、あなたはProtocolsを利用することによってこれを達成することができます。プロトコルは基本的にJavaのインタフェースの先駆けなので、動作のほとんどは自然に行われるはずです。

プロトコルの宣言は以下のようになります。これは、クラスによって実装されてもよい

@protocol Foo 
-(void) foo; 
-(int) boo: (int) arg; 
@end 

。以下の場合、MyClassはFooプロトコルに準拠しています。

-(void) someMethod: (id<Foo>) arg; 

あなたがオブジェクトについてより具体的にする必要がある場合は、彼らはまた、このように使用することができます:

-(void) someMethod: (NSObject<Foo> *) arg; 

@interface MyClass <Foo> 
{ 
} 

@end 

@implementation MyClass 

-(void) foo { 
    //do something 
} 
-(int) boo: (int) arg { 
    //do something else 
    return arg; 
} 

@end 

最後に、あなたはこのようにそれらを周りに渡すことができます

関連する問題