1. 程式人生 > >Swift中按鈕監聽方法私有化之後崩潰解決方式

Swift中按鈕監聽方法私有化之後崩潰解決方式

navigationItem.rightBarButtonItem = UIBarButtonItem(title: "註冊", style: UIBarButtonItemStyle.Plain, target: self, action: "loginBtn")

//不將其私有化是可以正常監聽按鈕點選

 func loginBtn() {

print("點選登陸,註冊按鈕")   

    }

----------------------帥帥的分割線------------------------------------

//假如私有化,按鈕點選不能被監聽到,程式執行就會崩潰

private

 func loginBtn() {

print("點選登陸,註冊按鈕")   

    }


解決方法:

@objc private func loginBtn() {

print("點選登陸,註冊按鈕")   

    }


解析:由於swift是靜態型的語言,當這個方法私有化之後,這個按鈕就不能被監;OC,有個UIController,由於是訊息迴圈機制執行addTarget這個方法的,所以可以被執行這個方法;那麼swift中怎麼解決這個問題呢? : @objc,讓這個方法以OC執行時方式來呼叫;