Wenn Sie ein Objekt mit einer Eigenschaft haben, die einen Retain-Setter hat, welche davon ist Best Practice?Der beste Weg, um Retain-Eigenschaften zu bearbeiten
-(id)init {
if((self = [super init])) {
self->_retainingProperty = [[NSObject alloc] init];
}
return self;
}
-(id)init {
if((self = [super init])) {
self.retainingProperty = [[NSObject alloc] init];
[self.retainingProperty release];
}
return self;
}
-(id)init {
if((self = [super init])) {
NSObject *obj = [[NSObject alloc] init];
self.retainingProperty = obj;
[obj release];
}
return self;
}
Alle diese mit einem Release in dealloc gekoppelt werden würde
Vielleicht gibt es eine weitere Möglichkeit, I‘ habe verpasst.
Ich denke, das ist der Weg zu gehen. Wenn "holdingProperty" während der Lebensdauer des Objekts nicht erneut geändert wird, könnte der Eigenschaften-Setter jedoch nur die Standardzuweisung sein. Aber in diesem Fall muss die Eigenschaft noch in dealloc freigegeben werden, was zu Verwirrung führen könnte ... – Nick