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

时间:2016-05-11 12:38:37

标签: ios string swift int

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是正确的。

任何人都可以帮助我吗?

4 个答案:

答案 0 :(得分:1)

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

试试这个:

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

答案 1 :(得分: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!)
   self.deltaValueS.text = "\(deltaValue)"
   print(deltaValue)

}

答案 2 :(得分:0)

每次按下按钮时,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)
}

答案 3 :(得分:0)

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