我想添加一个视图控制器作为通知的观察者。
调用选择器方法时,我会提醒用户。我希望只有当这个视图控制器是顶视图控制器时才会出现此警报。
我想在viewDidLoad
方法中将其添加为观察者。但哪里更好地删除视图控制器作为观察者?
如果我在viewDidUnload
和dealloc
中将其删除,会不会有问题?
答案 0 :(得分:2)
没有。根据{{3}}:
从接收者的调度表中删除指定给定观察者的所有条目。
如果没有这样的条目,则没有什么可以删除,所以这不是问题。
但是,根据您使用它的方式,在viewDidLoad中将其添加为观察者并不意味着只有在该视图控制器是“顶视图控制器”时才会使用它(例如,如果您有几个标签并从一个标签移动到另一个标签,除非您收到内存警告,否则当您离开它们时,其他(不可见)标签的视图将不会被卸载。)
根据您的目标,最好在viewDidAppear上添加观察者(如果是,请在viewWillDisappear上删除)。