简单文本字段更改标签答案

时间:2016-09-23 02:52:43

标签: ios swift xcode

我正在尝试在我的应用程序中创建一个场景,允许用户在两​​个单独的文本字段中输入数字,这会执行一些基本的数学运算,并在单击“计算按钮”时将输出吐出到标签中。我观看了视频,更改了代码,而且我似乎无法以我想要的方式工作,而且我的应用程序一直在崩溃。这是我到目前为止的简单代码。任何人都可以解释我输入的内容是错误的以及我需要改变什么吗?非常感谢,谢谢!

import UIKit

class DopamineCalculator: UIViewController {

//Patient weight Input

@IBOutlet weak var patientWeight: UITextField!


//calculate button
@IBAction func calculateButton(sender: AnyObject) {

    let weightPatient = Double(self.patientWeight.text!)

    dripAnswer.text = String(weightPatient * 2)

}


//Clear button action
@IBAction func clearButton(sender: AnyObject) {
    self.patientWeight.text=nil
    //self.dosageDesired.text=nil
    self.dripAnswer.text=nil
}


//Drip Rate Answer Label
@IBOutlet weak var dripAnswer: UILabel!

我的“清除”按钮有效,但我无法使用“计算”​​按钮。我现在试着保持简单,只需添加两个盒子,但我甚至无法让它工作。

3 个答案:

答案 0 :(得分:0)

    var weightpatient = Double(self.patientweight.text!)
    weightpatient = Double(weightpatient!*2)
    let basicStr:String = String(format:"%f", weightpatient!)
    dripanswer.text = String(basicStr)

工作正常..

以下是https://www.dropbox.com/s/p67f88qnnsekivn/Blur.zip?dl=0的演示链接,试试让我知道

答案 1 :(得分:0)

也许是"!"在重量患者之后。子代码很适合我的模拟器(xcode 7.3.1)。

import UIKit

class ViewController: UIViewController {

  @IBOutlet weak var patientweight: UITextField!

  @IBAction func calculatebutton(sender: AnyObject) {
     let weightpatient = Double(self.patientweight.text!)

     dripanswer.text = String(weightpatient! * 2)

  }

  @IBAction func clearbutton(sender: AnyObject) {
     self.patientweight.text=nil
     //self.dosagedesired.text=nil
     self.dripanswer.text=nil
  }

  @IBOutlet weak var dripanswer: UILabel!

  override func viewDidLoad() {
     super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
  }
}

答案 2 :(得分:0)

首先,您应该检查输入的患者体重是否为数字。使用此扩展程序:

Movie.objects.all().filter(genre=self.object)

然后检查字符串是否为空并且包含数字,如果满足这两个条件,则继续计算..

extension String {
var isNumber: Bool
{
    let range = self.rangeOfCharacter(from: CharacterSet.decimalDigits.inverted)
    return (range == nil)
}
}