Vor der Einführung von ARC, als ich einem Eigenschaftswert mit init (oder initWith) zuweisen wollte, verwendete ich einfach retain (als Folge davon, dass ich den Property-Setter nicht innerhalb von init verwenden wollte).
// Vor ARC mit retain verwenden
// @property (nonatomic, retain) DataModel *dataModel;
// @synthesize dataModel = _dataModel;
- (id)initWithDataModel:(id)newModel) {
self = [super init];
if(self) {
_dataModel = [newModel retain];
}
return self;
}
Mit ARC (wieder ohne Setter zu verwenden), ist dies der richtige Weg, um newModel der dataModel-Eigenschaft zuzuweisen? Meine Vermutung ist, dass der Compiler (mit ARC) sehen wird, dass die Eigenschaft als strong definiert ist und die Eigenschaft korrekt setzen wird. Ich frage mich, ob das richtig ist?
// Mit ARC verwenden
// @property (nonatomic, strong) DataModel *dataModel;
// @synthesize dataModel = _dataModel;
- (id)initWithDataModel:(id)newModel) {
self = [super init];
if(self) {
_dataModel = newModel;
}
return self;
}
0 Stimmen
Möglicher Duplikat von Sollte ich mich im Init-Methode mit ARC auf self.property beziehen?