使用NSNotification传递参数

今天使用NSNotification在界面之间传递参数。开始的写法如下:


NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("wordChanged"), name: "wordChanged", object: nil)


func wordChanged(){
      
            input.text = “changed!"
        
    }

如上做法传递消息是可以了,但是我还想给这个消息传递参数,所以我修改成如下:

NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("wordChanged"), name: "wordChanged", object: nil)


func wordChanged(ns:NSNotification){
        if let name: AnyObject = ns.userInfo?["name"]{
            input.text = name as String
        }
    }

编译成功之后,一运行就死机,反复的调试,以及在网络上搜索,终于明白问题所在,即把selector: Selector("wordChanged")修改为selector: Selector("wordChanged:")即可,注意到没有,仅仅是增加了一个冒号,最终代码如下:

NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("wordChanged:"), name: "wordChanged", object: nil)

有时候小问题也挺折磨人的,呵呵。

你可能感兴趣的:(ios,switch,NSNotification)