1

Objective-C でプロパティを宣言するとき、アクセサーを取得するための synthesize 句も追加します

 @interface StoreManager ()
 @property (nonatomic, copy) NSString *writeStoresTimer;

 @implementation StoreManager
 @synthesize writeStoresTimer

私は通常、次の構文を使用してプロパティに値を設定します

 [self setWriteStoresManager:@"Data"];

上記のステートメントは self.writeStoresTimer = @"Data" と同じですか? これは set-accessor も呼び出しますか

4

3 に答える 3

2

上記のステートメントは、self.writeStoresTimer = @"Data" と同じですか?

はい、まったく同じです。

実際、自動的に合成されるデフォルトのセッター メソッドをオーバーライドする場合は、次のように定義します。

- (void)setWriteStoresTimer:(NSString *)string;

そして、ドット構文を介してカスタム実装が呼び出されます。

Appleの参照から:

プロパティの宣言は、2 つのアクセサー メソッドを宣言することと同等であると考えることができます。したがって

   @property float value;

次と同等です。

   - (float)value;
   - (void)setValue:(float)newValue;
于 2012-06-28T15:46:38.513 に答える
2

はい。どちらも同じことをします。

Apple のドキュメントから:

Objective-C は、角括弧表記 ([]) の代わりにアクセサー メソッドを呼び出すドット (.) 演算子を提供します。ドット構文は、C 構造体要素へのアクセスで使用するのと同じパターンを使用します。

The Objective C Programming Languageで完全なドキュメントを参照できます。

于 2012-06-28T15:50:38.043 に答える
0

はいセルフ。set がアクセサを使用するのは、同じクラス内でポインター名を使用するときだけです。

于 2012-06-28T15:46:54.363 に答える