今天使用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)
有時候小問題也挺折磨人的,呵呵。