Swift - NSNotificationCenter 小酌

2016-05-25  本文已影响563人  离子来了

这里主要是对比一下2中监听方式
第一种:

发送通知(参数的组合实质就是一个NSNotification)
NSNotificationCenter.defaultCenter().postNotificationName("oneNotification", object: "liyang", userInfo: ["li":"yang"])

监听通知
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(CommentDegreeShowVC.noticeAcion(_:)), name: "oneNotification", object: nil) //object必须为空(否则监听不了),暂时不清楚这个参数的意义。

移除通知
NSNotificationCenter.defaultCenter().removeObserver(self)

第二种:

发送通知(参数的组合实质就是一个NSNotification)
NSNotificationCenter.defaultCenter().postNotificationName("oneNotification", object: "liyang", userInfo: ["li":"yang"])

监听通知
var  observe = NSNotificationCenter.defaultCenter().addObserverForName("oneNotification", object: nil, queue: NSOperationQueue.mainQueue()) { (n:NSNotification) in
        print("\(self)我收到通知了:object:\(n.object),userInfo:\(n.userInfo)")   
    }

移除通知     
NSNotificationCenter.defaultCenter().removeObserver(self.observe)

注意:self.observe == observe

mark:上面的移除方式注意配对使用,否则无效
EventBox是基于第二种的使用

上一篇下一篇

猜你喜欢

热点阅读