プロパティを保持するオブジェクトがsetterを保持している場合、これらはどれがベストプラクティスですか?retainプロパティを扱う最良の方法
-(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;
}
これらのすべては、おそらく私は「別の方法があるのdealloc
でのリリースと結合されます逃した。
私はこれが行く方法だと思います。しかし、オブジェクトの存続期間中に 'retainProperty'が再び変更されなければ、プロパティーセッターは代わりにデフォルトの代入になります。しかし、この場合、プロパティはdeallocで解放する必要があり、混乱を招く可能性があります。 – Nick