該應用程序有一個屏幕,在給出輸入後,我點擊確定按鈕,它應該執行輸入驗證,如果沒問題,則導航並通過協議/委託將數據傳回到前一屏幕,否則,阻止導航並顯示警告彈出窗口。帶按鈕點擊檢測的NSInvalidArgumentException
這是我的viewDidLoad:
override func viewDidLoad() {
super.viewDidLoad()
button.addTarget(self, action: "pushView:", forControlEvents: .TouchUpInside)
}
這是pushView()函數:
func pushView() {
//some codes to validate data and perform navigation
}
當我運行在模擬器的應用程序,當我點擊按鈕崩潰,這是錯誤消息:
2016-04-21 00:12:39.976 ToDo List[1795:1253192] -
[ToDo_List.AddReminderController pushView:]:
unrecognized selector sent to instance 0x7fa13ac16c40
2016-04-21 00:12:39.981 ToDo List[1795:1253192]
*** Terminating app due to uncaught exception
'NSInvalidArgumentException', reason: '-
[ToDo_List.AddReminderController pushView:]:
unrecognized selector sent to instance 0x7fa13ac16c40'
發件人或選擇器可能存在問題,但我不知道它到底意味着什麼。
非常感謝您的解釋!我對Swift非常陌生。 –
不客氣。選擇器有一個奇怪的語法,直到你理解它。這個答案更多地討論了選擇器和它們的語法:http://stackoverflow.com/a/6404439/4063602。正如@ oleg-gordiichuk在他的回答中提到的那樣,Swift 2.2中的語法已經發生了變化,所以您可以編寫'#selector'並使用代碼幫助來幫助您選擇正確的方法。這可能是因爲很多人遇到了像以前那樣的「老」選擇器語法問題(而且我也有過) – pbodsk