2016-04-09 9 views
1

私は私のコードをチェックするために失言を使用し、そしてそれは、オブジェクトが そのメンバーの一人のデリゲートやデータソースとしての地位を設定すると、それはその中にその参照をデタッチする必要がありますインスタンスが解放されたときにデリゲートnilを設定するのはなぜですか?

言う - [NSObjectのdeallocを] メソッド。

だから私は

- (void)dealloc 
{ 
    self.tipsView.delegate = nil; 
} 

なぜ書く必要がありますか?デリゲートが弱い場合、dealloc時にそれを設定する必要はありません。

答えて

1

あなたのデリゲートが弱いリファレンスの場合は正しく、nilに設定することは意味がありません。ツールは間違っています。

1

これを行う唯一の理由は、ARCを使用していない場合です。私はツールが古いか、ARCを使用していることを知るために設定されていないと思います。

+0

*あなたがARCを使用しているかどうかは関係ありません - 委任先のクラスがARCを使用していて本当に変数を 'weak'(弱い参照をゼロにする)で実装していて、' unsafe_unretained '。 – newacct

関連する問題