试图将双打从一个视图传递给另一个但是它不起作用

问题描述 投票:0回答:1

嘿,我是Swift和Xcode的新手,我正在尝试创建一个小应用程序,但我有一个错误,无法解决它。

我试图将一个double从一个视图传递到另一个视图,但它说二进制运算符'+ ='不能应用于'String'和“int”类型的操作数

这是我的第一个看法:

@IBOutlet weak var Rned: UILabel!
var ArgentC: Double = 0

override func viewDidLoad() {
    super.viewDidLoad()

    Rned.text = String(ArgentC)
    Rned.backgroundColor = UIColor(patternImage: UIImage(named: "Rectangle2")!)

}

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    let SecondViewController = segue.destination as! SacocheVCp2
    SecondViewController.ArgentCV = Rned.text!
}

@IBAction func Reset(_ sender: Any) {
    Rned.text = String(0)
    ArgentC = 0
}
@IBAction func CashButton(_ sender: Any) {
    performSegue(withIdentifier: "segueSac", sender: self)

}

这是我的第二个错误视图,当我想在我的双打中添加数字时出现错误。

@IBOutlet weak var Rend2Label: UILabel!

var ArgentCV = String()

override func viewDidLoad() {
    super.viewDidLoad()
    Rend2Label.backgroundColor = UIColor(patternImage: UIImage(named: "Label")!)

    Rend2Label.text = ArgentCV


    // Do any additional setup after loading the view.
}

@IBAction func CinqEur(_ sender: Any) {
    ArgentCV += 5     // <== Here
    Rend2Label.text = ArgentCV
}
@IBAction func DixEur(_ sender: Any) {
    ArgentCV += 10    // <== Here
}
@IBAction func VingtEur(_ sender: Any) {
    ArgentCV += 20    // <== Here
}
@IBAction func CinquanteEur(_ sender: Any) {
    ArgentCV += 50    // <== Here
}

谢谢你的时间。

swift swift3 double
1个回答
0
投票

您不必将其作为String发送,您可以将其作为Int发送

secondViewController.argentCV = Int(rned.text) ?? 0 // ?? to avoid crashes  but make sure it doesn't destroy logic 

然后在SacocheVCp2

var argentCV = 0 // 0 is default

最后

argentCV += 5     // <== Here
rend2Label.text = "\(argentCV)"
© www.soinside.com 2019 - 2024. All rights reserved.