2
init(またはinitWith)を使用してプロパティに値を代入したいときにARCを導入する前に、私は単にretain(init内でプロパティセッターを使用したくないという結果として)を使用しました。 ARC(再びセッターを使用しない)でARCを使用してinit内のプロパティを設定していますか?
// Pre ARC using retain
// @property (nonatomic, retain) DataModel *dataModel;
// @synthesize dataModel = _dataModel;
- (id)initWithDataModel:(id)newModel {
self = [super init];
if(self) {
_dataModel = [newModel retain];
}
return self;
}
が、これはデータモデルプロパティにnewModelを割り当てるための正しい方法は何ですか?私の推測では、コンパイラ(ARCを使用)は、プロパティが強く定義され、プロパティを正しく設定していることがわかります。これが正しければ私は興味がありますか?
// Using ARC
// @property (nonatomic, strong) DataModel *dataModel;
// @synthesize dataModel = _dataModel;
- (id)initWithDataModel:(id)newModel {
self = [super init];
if(self) {
_dataModel = newModel;
}
return self;
}
はいこれが正しいです –
ありがとう、ありがとうございました。 – fuzzygoat
の可能な複製[私はARCを使ってinitメソッドのself.propertyを参照する必要がありますか?](http://stackoverflow.com/questions/8056188/should-i-refer-to-self-property-in-the-init -method-with-arc) –