我最近查看了一些快速代码,我发现了这一点:添加观察者然后立即将其删除。这背后的逻辑是什么?
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
NSNotificationCenter.defaultCenter().addObserver(self, selector: "displayPushMessage:", name: "displayMessage", object: nil)
}
//adding the observer and removing it right after whhy?? where is the logic
override func viewDidDisappear(animated: Bool) {
super.viewDidDisappear(animated)
NSNotificationCenter.defaultCenter().removeObserver(self, name: "displayMessage", object: nil)
}
func displayPushMessage (notification:NSNotification) {
答案 0 :(得分:1)
因为它在程序执行时间方面并非“正确”。一些观察者有意识地监听对象的生命周期(在这种情况下是视图控制器)。其他只适用于VC可见的情况 - 例如,您无需监听其目的是更新UI元素(并在无法看到它时占用执行时间,内存等)的消息。