2017-03-05 29 views
0

我是swift的新手,在第一課中遇到了斯坦福在Swift上使用斯坦福大學開發iOS 9應用程序的問題。我的代碼與教師完全相同,但是我收到了一個我似乎無法解決的錯誤。我認爲這可能是Swift 2和3之間的區別,但我不確定。在Swift中按下按鈕時出現無法識別的選擇器錯誤

import UIKit 

class ViewController: UIViewController { 

    @IBOutlet weak var display: UILabel! 

    var userIsInTheMiddleOfTyping: Bool = false 

    @IBAction func touchDigit(sender: UIButton) { 

     let digit: String = sender.currentTitle! 
     if userIsInTheMiddleOfTyping { 
      let textCurrentlyInDisplay: String = display.text! 
      display.text = textCurrentlyInDisplay + digit 
      } 
     else { 
      display.text = digit 
     } 
     userIsInTheMiddleOfTyping = true 

    } 

} 

在模擬器中,我觸摸自制計算器上的「數字」按鈕,即發生錯誤時。

+0

你能顯示按鈕創建代碼 –

+0

並顯示錯誤 –

+0

可能重複[IBAction按鈕「無法識別選擇器發送到實例」錯誤](http://stackoverflow.com/questions/12783670/baction-button-unrecognized -selector-sent-to-instance-error) –

回答

1

太棒了!因爲您必須從其他視圖(或同一視圖)複製了已連接操作的按鈕。檢查你的連接檢查器。

故事板(或XIB)>>查看控制器>>選擇按鈕>>檢查連接檢查器(在這裏,就不會有任何錯誤連接,或者與動作的多個連接)

+0

所以它看起來實際上沒有任何行動,我不明白。思考? 編輯:等等,這是一個謊言,但只有一個動作,它只與我認爲它應該是連接。爲了好的措施,我刪除了連接並重新連接了它。 – Acro2142

+0

請分享該按鈕的連接檢查員的屏幕截圖 – 2017-03-05 04:02:28

+0

現在不用管它現在的工作!我沒有改變代碼,只是刪除了連接並重新連接,現在它工作。不明白爲什麼。 – Acro2142

0

問題是不是你的代碼,它是按鈕的配置方式。看看故事板中的按鈕。按住Control鍵點按按鈕並查看它的操作:您可能會看到該操作與錯誤中報告的無法識別的選擇器相同。點擊'x'按鈕刪除操作,然後控制 - 從按鈕到目標的新連接,並選擇正確的操作。

如果您在代碼而不是故事板中創建按鈕,請檢查創建按鈕的代碼。你會發現在那裏指定了不正確的選擇器。只需更新它,以便選擇器名稱與按鈕目標中的某個操作的名稱相匹配。請記住:拼寫和個案數量。

相關問題