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
}
}
在最后一部分,我得到的错误是:
thread 1: exc_bad_instruction(code=exc_i386_invop,subcode=0x0) error
到 targetMoneyLabel.text = targetMoneyString
部分。
我想我必须更改最后一句话,我尝试阅读和观看许多视频来修复它,但我做不到。
问题是否与nil
有关?我是 Swift 的新手。
最佳答案
问题一定是关于展开变量。
你可以试试这个:
guard let targetMoneyString.characters.count > 0 else {
return
}
targetMoneyLabel.text = targetMoneyString
关于ios - swift ,线程 1 : EXC_BAD_INSTRUCTION error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40909088/