2016-05-06 119 views
-1
class ViewController: UIViewController { 
    @IBOutlet weak var label: UILabel! 

    var userIsInTheMiddleOfTypingNumber: Bool = false 

    @IBAction func appendDigit(sender: UIButton) { 
     let digit = sender.currentTitle! 

     if (userIsInTheMiddleOfTypingNumber) { 
      label.text = label.text! + digit 
     } 
     else { 
      label.text = digit 
      userIsInTheMiddleOfTypingNumber = true 
     } 
    } 
} 

我目前正在創建一個計算器應用程序。出於某種原因,當我運行模擬器,並嘗試輸入一些位數的siumulator凍結,並bad_instruction的錯誤就行出現:線程1:EXC_BAD_INSTRUCTION(代碼= EXC_I386_INVOP,子代碼= 0x0)

label.text = digit 

我將如何解決這種情況呢?

+0

你能張貼整個錯誤日誌? – Chajmz

+0

「數字」是一個字符串嗎? – Echizzle

+2

要了解如何調試崩潰,請參閱http://www.raywenderlich.com/10209/my-app-crashed-now-what-part-1 – rmaddy

回答

1

看起來你忘了將故事板中的標籤與插座連接起來。

1

看起來像currentTitle屬性是nil這會導致崩潰。您無需進行任何nil檢查即可強制解開財產。

@IBAction func appendDigit(sender: UIButton) { 
    if let digit = sender.currentTitle { 
     if (userIsInTheMiddleOfTypingNumber) { 
      label.text = label.text! + digit 
     } 
     else { 
      label.text = digit 
      userIsInTheMiddleOfTypingNumber = true 
     } 
    } 
} 

OR

也可能是原因由@dasdom指定

相關問題