-1

重複の可能性:
Objective-C-「self」を使用する場合

あるビューから別のビューに変数を渡す必要があったので、.hにStringCというプロパティを作成し、self.StringCを使用してアクセスしました(その部分は機能しました)。

ビュー全体からアクセスできる配列も必要ですが、使用方法が異なります。

たとえば、私はlvLabelArrayを持っていて、使用しています

self.lvLabelArray=[[NSMutableArray alloc]init];

その後、私は使用しています

[lvLabelArray addObject:LabelText];

それとの間に違いはありますか

[self.lvLabelArray addObject:LabelText];

申し訳ありませんが、これらの種類の変数の用語がわかりません。

4

1 に答える 1

1

そこには重要な違いがあります。

self.attributeは、必要に応じて、オブジェクトのgetter関数またはsetter関数を通過します。これにより、初期値を設定したり、更新メッセージをトリガーしたりすることができます。

「属性」へのアクセスは、基になる変数に直接アクセスするため、すべてをバイパスします。結果として、それは間違いなくあまり好ましくない働き方です。

この混乱と単なる間違いを回避する一般的な方法は、基になる変数の名前を変更することです。「@synthesize属性」だけでなく、「@synthesize属性=_attribute」を使用してください。これにより、以前と同じようにgetterメソッドとsetterメソッドが作成されますが、基になる変数の名前は「_attribute」になります。つまり、「self」なしで「attribute」を使用しようとすると、コンパイラエラーが発生します。

于 2012-08-10T18:49:49.690 に答える