4

私が理解しているのは、プロトコルがメソッド名を指定し、そのプロトコルに準拠する他の誰かがメソッドの実装を行うということです。

では、プロトコルで宣言されているプロパティについてはどうでしょうか。プロパティを実装するということは、そのセッターとゲッターを実装することを意味しますか?

4

3 に答える 3

9

プロパティは、Objective-Cが代替ドット.構文を使用してメソッドを呼び出すことができる規則を提供する、特定のシグニチャを持つ1つまたは2つのメソッドのわかりやすい名前です。たとえば、次のペアを宣言するプロトコル間に違いはありません。

-(int) foo;
-(void)setFoo:(int)_foo;

メソッド、および読み取り/書き込みプロパティを宣言するプロトコル:

 @property (readwrite) foo;

つまり、プロパティを実装するということは、読み取り専用、書き込み専用、または読み取り/書き込みプロパティのいずれを実装するかに応じて、1つまたは2つのメソッドを実装することを意味します。

于 2012-07-31T19:28:21.120 に答える
1

他の人が言ったように、あなたはただゲッターやセッターを実装する必要があります(プロパティに応じて)。

私はあなたがそれらをただ合成することができると付け加えます:

@property(非アトミック、保持)NSObject * foo;

で終わるだろう:

@synthesize foo;

于 2012-07-31T19:38:27.460 に答える
0

プロトコルは、オブジェクトが一連のメソッドを実装することを保証するものにすぎません。たとえば、オブジェクトをクラスのデリゲートとして使用する場合は、呼び出すメソッドがオブジェクトに実装されていることを確認する必要があります。それがプロトコルのポイントです。

于 2012-07-31T18:52:57.410 に答える