2014-10-01 134 views
1

所以這就是發生了什麼,我在故事板中有兩個場景,場景一個是登錄表單,而場景二是一個調用NSURLSession的表單(該場景不是問題但是)當按下按鈕時應用程序崩潰

發生什麼事情是,當我點擊第一個場景上的登錄按鈕時,應用程序崩潰,應該發生的事情是登錄憑據應該針對(當前硬編碼的)用戶憑證進行檢查,如果它們是正確的,一個segue應該將用戶發送到第二個場景。

這是錯誤日誌數據;

2014-10-01 17:24:51.454 TotalSMSAPP [15443:446622] - [TotalSMSAPP.ViewController1 activateLogin:]:無法識別的選擇發送到實例0x7f88d3424620 2014-10-01 17:24:51.459 TotalSMSAPP [ 15443:446622] *終止應用程序由於未捕獲的異常 'NSInvalidArgumentException',原因: ' - [TotalSMSAPP.ViewController1 activateLogin:]:無法識別的選擇發送到實例0x7f88d3424620'

這適用於有問題的代碼現場;

import Foundation 
import UIKit 

class ViewController1: UIViewController { 

    @IBOutlet var username: UITextField! 
    @IBOutlet var password: UITextField! 


    @IBAction func login(sender: UIButton) { 
     if(username.text == "koharu" && password.text == "test"){ 
      self.performSegueWithIdentifier("toSMS",sender: self) 
     }else{ 


     } 
    } 

} 

回答

2

'NSInvalidArgumentException', reason: '-[TotalSMSAPP.ViewController1 activateLogin:]: unrecognized selector sent to instance 0x7f88d3424620'

此錯誤指出,雖然您已經定義login:activateLogin:被調用。如果您重命名該方法,可能會發生這種情況。刪除按鈕動作並重新連接@IBAction func login(sender: UIButton)

+0

哈哈哈歡呼。看起來,編輯在某個時候創建​​了兩個不同的引用,可能是因爲有人問我一個問題LOL讓我分心。 *金髮錯誤* :) – koharuai 2014-10-05 08:56:59

0

確保您有一個帶有此標識符的segue。 也覆蓋prepareForSegue方法,這將幫助您調試。

0

按下按鈕時,它會嘗試調用方法activateLogin:,但您尚未提供。可能您將按鈕連接到activateLogin:操作,然後重命名它。

只需進入Interface Builder,刪除對舊方法的引用,並改爲使用新方法替代login:

相關問題