1

ガベージコレクションに関するこの投稿では、著者は次のように述べています。

Mac OS X 10.6以降では、NSNotificationCenterは弱い参照であるため、コードで次のことを行う必要はありません。

[[NSNotificationCenter defaultCenter] removeObserver:self
      name:kObservationName
      object:nil];

これはどこかで公式に文書化されていますか?のドキュメントにはremoveObserver:まだ次のように書かれています。

NotificationObserverまたはaddObserver:selector:name:object:で指定されたオブジェクトの割り当てが解除される前に、必ずこのメソッド(またはremoveObserver:name:object:)を呼び出してください。

4

1 に答える 1

2

ガベージ コレクションアプリケーションを構築している場合、監視や通知を受け取るためにオブジェクトの登録を解除する必要がないのは事実です。

しかし、ガベージ コレクションは現在非推奨であり、新しいプロジェクトで使用すべきものではありません。

ARCまたはMRCを使用している場合でも、オブジェクトを削除する必要があります。通常、これを行うのに最適な場所はdeallocメソッドです。

于 2012-10-06T08:31:46.867 に答える