我见过NSNotification
addObserver/removeObserver 放在viewDidLoad
/ viewDidUnload
,viewDidAppear
/viewDidDisappear ,
dealloc`....
在这里使用什么正确的方法使事情变得整洁?
我见过NSNotification
addObserver/removeObserver 放在viewDidLoad
/ viewDidUnload
,viewDidAppear
/viewDidDisappear ,
dealloc`....
在这里使用什么正确的方法使事情变得整洁?
对于 viewControllers:
我会说 inviewWillAppear:
和viewDidDisappear:
. 原因是只要您的视图“在屏幕上”,您就会关心这些通知。viewDidLoad
因为当您的视图不在屏幕上并且viewDidUnload
是(取消)注册通知的错误位置时,不需要卸载视图。
注册非视图通知:在designated initializer
和dealloc
中。
那要看。您是否只想在视图控制器在屏幕上时接收通知(然后 viewWillAppear/Disappear 可能是一个不错的选择)或者当视图当前未处于活动状态时接收通知。在后一种情况下,init 方法可能比viewDidLoad
(或者通知视图当前在内存中是否重要?)。
另请注意,viewDidUnload
并非在所有情况下都调用它(仅当视图被卸载但视图控制器保留在内存中时 - 如果视图控制器在视图加载时被释放,则仅dealloc
调用并且是取消注册的正确位置。