美文网首页
Swift - NSNotificationCenter 小酌

Swift - NSNotificationCenter 小酌

作者: 离子来了 | 来源:发表于2016-05-25 15:50 被阅读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是基于第二种的使用

    相关文章

      网友评论

          本文标题:Swift - NSNotificationCenter 小酌

          本文链接:https://www.haomeiwen.com/subject/ojstdttx.html