Objective Cの小さな構文の明確化
-
27-09-2019 - |
質問
私はほとんどの時間で、このコードを見てきました。ここで割り当てることによって定義され、実装でそれが合成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
及び方法の一つだけのカスタムバージョンを一緒に混在させることができます。
所属していません StackOverflow