2016-05-11 7 views
0
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 
     } 
    } 

これは私のコードです。 deltaValueのintをdeltaValueSというラベルの文字列として表示します。私は多くのことを試みましたが、その価値は現れません。 私が試した:Intを文字列に変換するとき、[Swift]は表示されません

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

をしかし、どれも機能しません。問題は数学ではなく、番号は私のために印刷され、deltaValueは正しいです。

誰でも手伝ってもらえますか?

+3

'print(deltaValue)'の後にテキストを設定するコード行を置くべきである。 'viewDidLoad'の中に! – luk2302

+1

deltaValueSの値は、計算後に設定する必要があります –

+1

このdeltaValueS.text = "Δは\(deltaValue)です"を印刷(deltaValue)の後に記述します。これは仕事でなければならない –

答えて

1

これは、プロパティオブザーバを使用すると簡単に実現できます。 これにより、deltaValueが変更されるたびに自動的にテキストが設定されます。

これを試してみてください:

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

これはまた私のために働いたが、@ luk2302が言ったようにするのが簡単だった。将来私を悩ますことができる2つの方法には違いがありますか? ありがとうございました! –

+0

@ Andeyの答えを使用した場合、 'deltaValue'を' calcularButton'以外の関数から編集すると、 'deltaValueS.text'を手作業で設定する必要があります。プロパティーオブザーバーにとって素晴らしい点は、ロジックを一度定義することです。変更を行った場所にかかわらず、 'deltaValue'を変更するたびに解消されます。しかし、ちょっと..何でもあなたのボートを浮かべて:) – Laffen

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) 

}

0

deltaValueS.text = deltaValue.descriptionのviewDidLoadのようにしてみてください)を押すたびに計算しません。ボタン。あなたは@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) 
} 
0

Laffenのソリューションは、ベストプラクティスに従っています。このように考えると、ラベルのテキストを変数の値と常に一致させる必要があります。したがって、誰かが変数を設定するたびに、ラベルのテキストを変更する必要があります。言い換えれば、calcularButton:とその後のclearButtonPressed:で1行のコードを書くだけでよい。

関連する問題