3

プロパティを扱うときの適切な規則について少し混乱しています。例を通して私の質問を説明します。したがって、以下の例から、機能的に「self.loan = self.loan+250.00;」であることがわかります。「_loan=_loan+250.00;」と同じです。またはそうではありませんか?プロパティにアクセスするために両方の方法を使用する場合と使用しない場合がある、Web全体に多数のチュートリアルがあります。では、_loanとself.loanの使用の違いは正確には何ですか(self.loanは[self setLoan:]と同じです)

//ClassA.h
@interface ClassA: UIViewController
@property double loan;
@end

//ClassA.m
@implementation ClassA
@synthesize loan = _loan;

-(void)doSomething{
  self.loan = self.loan + 250.00; //Exhibit A
  _loan = _loan + 250.00; // Exhibit B 
} 
4

3 に答える 3

5

_loanは変数であり、それに値を割り当てても特に副作用はありません。

self.loan = self.loan + 250.00[self setLoan:[self loan] + 250.00]単に変数の値を設定または取得する以外のことを行うメソッドが呼び出されることを記述することと本質的に同じです。これらのメソッドが行う追加の処理は、それらのカスタム バージョン (セッターとゲッター)@synthesizeを作成するか、それらを作成するために使用するか、および を使用する場合は宣言@synthesizeで適用する属性によって異なります。@property

于 2012-06-04T22:28:59.950 に答える
0

@synthesize ローン = _loan; と書き出すと、基本的に、あなたが合成しているのは=プライベートメンバーであると言うのは省略形です。これは、以下の詳細なコーディング方法に似ています:

//ClassA.h
@interface ClassA: UIViewController {
    double _loan;
}

@property double loan;
@end

//ClassA.m
@implementation ClassA
@synthesize loan = _loan;

このように書き出すことをお勧めします。これにより、クラス コード内でプライベート メンバーを明確に示すために '_' を使用できますが、これを表示してはならない他のクラスにプロパティとして公開する場合。

于 2012-06-04T22:30:31.527 に答える
-1

プロパティにアクセスするときは、変数への直接参照を使用しないでください。コードでは常にself.propertyを選択してください。

_propertyを使用する場合、ゲッターとセッターは使用しません。この場合、@synthesizeの使用を無駄にしているだけです。

self.loan = self.loan + 250.00; //展示物A

これは正しいアプローチである必要があります。

于 2012-06-05T01:54:31.723 に答える