addObserver/removeObserver が/ 、/viewDidDisappear NSNotification
dealloc` に配置されているのを見てきました....viewDidLoad
viewDidUnload
viewDidAppear
,
ここで物事をきちんと整頓するために使用する適切な方法は何ですか?
addObserver/removeObserver が/ 、/viewDidDisappear NSNotification
dealloc` に配置されているのを見てきました....viewDidLoad
viewDidUnload
viewDidAppear
,
ここで物事をきちんと整頓するために使用する適切な方法は何ですか?
場合によります。ビューコントローラが画面に表示されているとき(その場合はviewWillAppear / Disappearがおそらく適切な選択です)、またはビューが現在アクティブでないときにのみ通知を受信しますか?後者の場合、initメソッドの方が適している可能性がありますviewDidLoad
(または、ビューが現在メモリ内にあるという通知にとって重要ですか?)。
また、すべての場合に呼び出されるわけではないことに注意してくださいviewDidUnload
(ビューがアンロードされたが、ビューコントローラがメモリに残っている場合のみ、ビューのロード中にビューコントローラの割り当てが解除された場合は、のみdealloc
が呼び出され、登録を解除する正しい場所になります。
viewController の場合:
inviewWillAppear:
とviewDidDisappear:
. その理由は、ビューが「画面上」にある限り、これらの通知を気にするからです。viewDidLoad
ビューがオフスクリーンでviewDidUnload
あり、通知を登録 (削除) するのに不適切な場所である場合、ビューをアンロードする必要がないためです。
ビュー以外の通知を登録する場合:designated initializer
および でdealloc
。