为什么要添加一个oberver来删除它

时间:2015-07-05 23:34:44

标签: ios swift addobserver

我最近查看了一些快速代码,我发现了这一点:添加观察者然后立即将其删除。这背后的逻辑是什么?

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) {

1 个答案:

答案 0 :(得分:1)

因为它在程序执行时间方面并非“正确”。一些观察者有意识地监听对象的生命周期(在这种情况下是视图控制器)。其他只适用于VC可见的情况 - 例如,您无需监听其目的是更新UI元素(并在无法看到它时占用执行时间,内存等)的消息。