質問

私はほとんどの時間で、このコードを見てきました。ここで割り当てることによって定義され、実装でそれが合成2人の変数名があります。このようないくつかのことをやっての目的をいただきましたか!? 2つの独立変数名を維持するように。大会のこの種のですか?

TEST.H

@interface Test {
  id<something> _variable1;
}

@property (nonatomic, retain)  id<something> variable2;

Test.m

@synthesize variable2 = _variable1
役に立ちましたか?

解決

唯一の変数があります。 variable2という名前のものは、基本的に取得/設定メソッドペアの構文ショートカットである、実際にはプロパティです。プロパティを定義するときは、明示的に取得/設定メソッドを書くことができます...

- (void)setVariable2:(id<something>)value {
    if (_variable1 != value) {
        [_variable1 release];
        _variable1 = [value retain];
    }
}

- (id<something>)variable2 {
    return _variable1;
}

...またはので、あなたに単調な入力の手間を惜しま、自動的に上記の方法を生成する@synthesize構文を使用します。 (また、私はここに含まれていないオブジェクトの破壊に_variable1解放するコードを発する。)

時には、しかし、あなたはデフォルトとは異なって、これらの方法のどちらか一方を実装したい場合があります。この場合、あなたはあなた自身を記述します。あなたも@synthesize及び方法の一つだけのカスタムバージョンを一緒に混在させることができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top