繁体   English   中英

Swift,Thread 1:EXC_BAD_INSTRUCTION错误

[英]Swift, Thread 1: EXC_BAD_INSTRUCTION error

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(code = exc_i386_invop,subcode = 0x0)错误

targetMoneyLabel.text = targetMoneyString部分。

我想我必须改变最后一句话,我试着阅读并观看很多视频来修复它,但我不能。

问题与nil有关吗? 我是Swift的新手。

问题必须是解开变量。

你可以试试这个:

guard let targetMoneyString.characters.count > 0 else  {
    return
}
targetMoneyLabel.text = targetMoneyString

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM