NSNotificationを使ってパラメータを伝える
1025 ワード
今日は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(「word Chaged」)をselector:Selectorに変更すればいいです.NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("wordChanged:"), name: "wordChanged", object: nil)
時々小さい問題もとても人を苦しめるので、へへ.