错误 - EXC_BREAKPOINT(代码= 1,子码= 0x100308448)

问题描述:

error - EXC_BREAKPOINT (code=1, subcode=0x100308448)错误 - EXC_BREAKPOINT(代码= 1,子码= 0x100308448)

每次我试着双击分割按钮,的Xcode问题EXC_BREAKPOINT(代码= 1,子码= 0x100308448),和我的应用程序崩溃。你能帮我解决这个问题吗?

Dividing button - EXC_BREAKPOINT(...)

import UIKit 

class ViewController: UIViewController { 

    @IBOutlet weak var displayResultLabel: UILabel! 
    var stillTyping = false 
    var dotIsPlaced = false 
    var firstOperand: Double = 0 
    var secondOperand: Double = 0 
    var operationSign: String = "" 


    var currentInput: Double { 
     get { 
      return Double (displayResultLabel.text!)! 
     } 
     set { 
      let value = "\(newValue)" 
      let ValueArray = (value.components(separatedBy:".")) 
      if ValueArray[1] == "0" { 
       displayResultLabel.text = "\(ValueArray[0])" 
      } else { 
       displayResultLabel.text = "\(newValue)" 
      } 
      stillTyping = false 
     } 
    } 

    @IBAction func numberPressed(_ sender: UIButton) { 
     let number = sender.currentTitle! 

     if stillTyping { 
      if (displayResultLabel.text?.characters.count)! < 20 { 
       displayResultLabel.text = displayResultLabel.text! + number 
      } 
     } else { 
      displayResultLabel.text = number 
      stillTyping = true 
     } 
    } 

    @IBAction func twoOperandsSignPressed(sender: UIButton) { 
     operationSign = sender.currentTitle! 
     firstOperand = currentInput 
     stillTyping = false 
     dotIsPlaced = false 
    } 

    func operateWithTwoOperands(operation: (Double, Double) -> Double) { 
     currentInput = operation(firstOperand, secondOperand) 
     stillTyping = false 
    } 

    @IBAction func equalitySignPressed(sender: UIButton) { 

     if stillTyping { 
      secondOperand = currentInput 
     } 

     dotIsPlaced = false 

     switch operationSign { 

     case "+": 
      operateWithTwoOperands{$0 + $1} 

     case "-": 
      operateWithTwoOperands{$0 - $1} 

     case "✕": 
      operateWithTwoOperands{$0 * $1} 

     case "÷": 
      operateWithTwoOperands{$0/$1} 
     default: break 

     } 
    } 

    @IBAction func clearButtonPressed(_ sender: UIButton) { 
     firstOperand = 0 
     secondOperand = 0 
     currentInput = 0 
     displayResultLabel.text = "0" 
     dotIsPlaced = false 
     operationSign = "" 

    } 

    // +,- 
    @IBAction func plusMinusButtonPressed(_ sender: UIButton) { 
     currentInput = -currentInput 
    } 

    @IBAction func percentageButtonPressed(_ sender: UIButton) { 
     if firstOperand == 0 { 
      currentInput = currentInput/100 
     } else { 
      secondOperand = firstOperand * currentInput/100 
     } 
    } 

    @IBAction func squareRootButtonPressed(_ sender: UIButton) { 
     currentInput = sqrt(currentInput) 
    } 

    @IBAction func dotButtonPressed(_ sender: UIButton) { 
     if stillTyping && !dotIsPlaced { 
      displayResultLabel.text = displayResultLabel.text! + "." 
      dotIsPlaced = true 
     } else if !stillTyping && !dotIsPlaced { 
      displayResultLabel.text = "0." 
     } 

    override var preferredStatusBarStyle: UIStatusBarStyle { 
     return .lightContent 
    } 

} 
+0

请不要使用图片,只要将错误消息复制到报价块即可。另外,缩进你的代码。 – nonchip

+0

在除法操作上代码崩溃的第一个想法应该是:**确保你永远不会被零除。 – vadian

太糟糕了,$0只能Int,不Double。 您应该如下详细描述内嵌函数。

operateWithTwoOperands {first, second in return first/second;} 

谢谢您的阅读。