繁体   English   中英

将Int转换为String时,它不显示[Swift]

[英]When converting Int to String, it doesn't display [Swift]

import UIKit

class ViewController: UIViewController {

    //textField do valor A
    @IBOutlet weak var valueA: UITextField!
    //textField do valor B
    @IBOutlet weak var valueB: UITextField!
    //textField do valor
    @IBOutlet weak var valueC: UITextField!
    //declarando as labels string que serão transformadas em int
    var valueBint: Int = 0
    var valueAint: Int = 0
    var valueCint: Int = 0
    //valor de delta em int
    var deltaValue: Int = 0


    @IBAction func calcularButton(sender: UIButton) {
       let valueAint = Int(valueA.text!)
       let valueBint = Int(valueB.text!)
       let valueCint = Int(valueC.text!)
        //conta do delta
        deltaValue = (valueBint! * valueBint!) - (4 * valueAint! * valueCint!)
        print(deltaValue)
    }

    @IBOutlet weak var deltaValueS: UILabel!
        override func viewDidLoad() {
            super.viewDidLoad()
           deltaValueS.text = deltaValue.description
        }
    }

这是我的代码。 我希望int deltaValuedeltaValueS标签中显示为字符串。 我尝试了很多事情,但没有显示该值。 我试过了:

  • deltaValueS.text = "∆ is \\(deltaValue)"
  • deltaValueS.text = "∆ is" + String(deltaValue)
  • deltaValueS.text = deltaValue.description

但是没有办法。 问题不在数学上,数字会为我打印出来,而deltaValue是正确的。

谁能帮我?

您可以使用属性观察器轻松实现此目的。 每当deltaValue更改时,这将自动设置文本。

尝试这个:

var deltaValue: Int = 0 {
    didSet {
        self.deltaValueS.text = "\(deltaValue)"
    }
}

//这样尝试

@IBAction func calcularButton(sender: UIButton) {
   let valueAint = Int(valueA.text!)
   let valueBint = Int(valueB.text!)
  let valueCint = Int(valueC.text!)
  //conta do delta
   deltaValue = (valueBint! * valueBint!) - (4 * valueAint! * valueCint!)
   self.deltaValueS.text = "\(deltaValue)"
   print(deltaValue)

}

每次按下按钮时,不会计算viewDidLoad()中的deltaValueS.text = deltaValue.description。

您必须将函数放入@IBAction func calcularButton

    @IBAction func calcularButton(sender: UIButton) {
   let valueAint = Int(valueA.text!)
   let valueBint = Int(valueB.text!)
   let valueCint = Int(valueC.text!)
    //conta do delta
    deltaValue = (valueBint! * valueBint!) - (4 * valueAint! * valueCint!)
    print(deltaValue)
    deltaValueS.text = "∆ is " + String(deltaValue)
}

拉芬的解决方案遵循最佳实践。 以这种方式考虑-您始终希望标签文本与变量的值匹配。 因此,每次有人设置变量时,标签的文本都必须更改。 换句话说,您只需要在calcularButton:中编写一行代码,然后再在clearButtonPressed:等中编写代码。

暂无
暂无

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

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