我开始自学斯威夫特,我是一个真正的初学者,我正在工作的计算器应用程序只是一个介绍项目。我一直收到一个线程错误,它以NSException类型的意外异常终止。我在几个地方读到过,这通常是由于从故事板到视图控制器的连接丢失或错误造成的,但是我三次检查了所有连接,我认为这不是问题所在。这是我的视图控制器代码,有问题吗?我大部分时间都在学习教程。
import UIKit
extension String{
var doubleValue: Double{
if let number = NSNumberFormatter().numberFromString(self) {
return number.doubleValue
}
return 0
}
}
class ViewController: UIViewController {
var isTypingNumber = false
var firstNumber:Double? = 0
var secondNumber:Double? = 0
var operation = ""
@IBOutlet var calculatorDisplay: UILabel!
@IBAction func numberTapped(sender: AnyObject) {
var number = sender.currentTitle
if isTypingNumber {
calculatorDisplay.text = calculatorDisplay.text! + number!!
} else{
calculatorDisplay.text = number
isTypingNumber = true
}
}
@IBAction func calculationTapped(sender: AnyObject) {
isTypingNumber = false
firstNumber = calculatorDisplay.text!.doubleValue
operation = sender.currentTitle!!
}
@IBAction func equalsTapped(sender: AnyObject) {
isTypingNumber = false
var result = 0.0
secondNumber = calculatorDisplay.text!.doubleValue
if operation == "+"{
result = firstNumber! + secondNumber!
} else if operation == "-"{
result = firstNumber! - secondNumber!
} else if operation == "*"{
result = firstNumber! * secondNumber!
}
else if operation == "/"{
result = firstNumber! / secondNumber!
}
calculatorDisplay.text = "\(result)"
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
我真的很感激我能得到的帮助!
最佳答案
自从第一次安装到故事板/XIB中,你是否改变了iBurd或IbAct的名字?
尝试转到界面生成器中的viewcontroller,右键单击VC对象以查看所有已连接的插座,并检查所有设备是否已连接,以及是否没有任何死链接。(即,如果您更名为func equalsTapped()
到func equalsTapped(sender: AnyObject)
,将引发异常,因为equalsTapped
不再存在,而不是equalsTapped:
现在确实如此,并且连接是第一个。)
关于swift - 未捕获的NSException类型的异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32172927/