夫特,线程1:EXC_BAD_INSTRUCTION错误
问题描述:
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var currencySegment: UISegmentedControl!
@IBOutlet weak var sourceMoneyField: UITextField!
@IBOutlet weak var targetMoneyLabel: UILabel!
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.
}
@IBAction func convertMoney(_ sender: Any) {
let ratio : Double
switch currencySegment.selectedSegmentIndex {
case 0:
ratio = 0.00085
case 1:
ratio = 1178.5
default :
ratio = 1.0
}
let targetMoneyString: String
if let sourceMoney = Double(sourceMoneyField.text!){
targetMoneyString = "\(sourceMoney * ratio)"
}else {
targetMoneyString = "Error"
}
targetMoneyLabel.text = targetMoneyString
}
}
在最后部分时,收到错误是:夫特,线程1:EXC_BAD_INSTRUCTION错误
线程1:exc_bad_instruction(代码= exc_i386_invop,子码=为0x0)错误
到targetMoneyLabel.text = targetMoneyString
部分。
我想我必须改变最后一句话,我尝试阅读并观看许多视频来修复它,但我不能。
与nil
有关的问题?我是Swift新手。
答
问题必须解开变量。
你可以试试这个:
guard let targetMoneyString.characters.count > 0 else {
return
}
targetMoneyLabel.text = targetMoneyString
+0
我做了,但它造成了另一个问题,即“条件中的变量绑定需要初始化器”。 –
+0
好消息是,无论如何,我修复了过去的错误。谢谢!你的建议太棒了^^,我会继续尝试 –
你复查你的网点连接是否正确? –
在我的操场你的代码是正常工作,我没有得到错误 –
如果targetMoneyLabel!= {零 targetMoneyLabel.text = targetMoneyString } 使用此代码,而不是最后一行,如果应用程序没有崩溃,则必须再次重新连接插座 –