我想添加一个视图控制器作为通知的观察者。
当调用选择器方法时,我会提醒用户。我希望此警报仅在此视图控制器是顶视图控制器时出现。
我想将它添加为viewDidLoad
方法中的观察者。但是将视图控制器作为观察者在哪里更好呢?
如果我同时在viewDidUnload
和中删除它会不会有问题dealloc
?
我想添加一个视图控制器作为通知的观察者。
当调用选择器方法时,我会提醒用户。我希望此警报仅在此视图控制器是顶视图控制器时出现。
我想将它添加为viewDidLoad
方法中的观察者。但是将视图控制器作为观察者在哪里更好呢?
如果我同时在viewDidUnload
和中删除它会不会有问题dealloc
?
不,根据文档:
从接收者的调度表中删除所有指定给定观察者的条目。
如果没有此类条目,则无需删除任何内容,因此这不是问题。
但是,根据您使用它的方式,将其添加为 viewDidLoad 中的观察者并不意味着它只会在该视图控制器是“顶视图控制器”时使用(例如,如果您有多个选项卡并移动从一个到另一个,除非您收到内存警告,否则其他(不可见)选项卡的视图在您离开它们时不会被卸载)。
根据您的目标,最好在 viewDidAppear 上添加观察者(如果是这样,在 viewWillDisappear 上删除)。