クラスAがクラスBを使用し、クラスAがクラスBのデリゲートである場合、デリゲートがクラスBのdeallocでnilに設定されていればOKです?私は通常、クラスAのdealloc内のデリゲートをnilにリセットするコードを見たことがありますが、実際の違いが何かをしているかどうかは分かりませんでした。デリゲートをクラス内でnilに設定する必要がありますか?
これは通常の方法である:
// somewhere in class A
- (void) someFunc {
self.b = [[B alloc] init];
self.b.delegate = self;
}
- (void) dealloc {
self.b.delegate = nil;
[self.b release];
}
'self.b = [[B alloc] init];' b 'の '@ property'がretainの場合にRHSで' alloc'を使用している場合は、 'self'を使用しないでください。ちょうど追加したかった。 – thesummersign
@geekay、なぜですか? –
これは非アークの間でした – thesummersign