如何存储数据(来自文本字段的用户输入)

时间:2019-09-17 20:33:09

标签: ios swift

我正在使用Swift,我想知道如何将用户输入存储为变量(双精度)。

我仍处于学习状态,因此我一直在观看有关这种情况的youtube教程,但无济于事。

我的代码:

import UIKit

class ViewController: UIViewController {


    @IBOutlet weak var userInput: UITextField!
    override func viewDidLoad() {
        userInput.delegate = self
    }

    @IBAction func Increment(_ sender: UIButton) {
        var inc = 0
        userInput = userInput + inc
    }

    @IBAction func Decrement(_ sender: UIButton) {

    }
    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        userInput.resignFirstResponder()

    }

}

extension ViewController: UITextFieldDelegate{
    func textFieldShouldReturn(_ textField: UITextField) -> Bool {
        textField.resignFirstResponder()

        return true
    }

}

用户将能够输入数字并以某个输入值递增或递减该数字。

4 个答案:

答案 0 :(得分:4)

//fetch any number from textfield 

func getValueFromTextfield() -> Double?{

  guard let text = userInput.text else {
      print("Missing user input")
      return nil 
  }

  guard let doubleValue = Double(text) else {
      print("parse failure")
      return nil 
  }
return doubleValue
}

//现在,对于递增和递减,我们有一些方法,例如,假设某个输入值作为1用于递增和递减,则在需要时替换它

func increment(){

// get value
   if let value = getValueFromTextfield(){
    userInput.text = “\(value + 1)” // increment by 1 
   }
}

func decrement(){

 // get value and check if it’s greater than zero
  if let value = getValueFromTextfield(), value > 0{
    userInput.text = “\(value - 1)” // decrement by 1
  }
}

@IBAction func Increment(_ sender: UIButton) {
    increment()
}

@IBAction func Decrement(_ sender: UIButton) {
    decrement()
}

这些方法将帮助您实现增量或减量运算,而无需将值存储在任何变量中。

如果您仍然想将值保存在变量中,只需简单地存储从方法let valueToStore = getValueFromTextfield()返回的值

答案 1 :(得分:1)

您的代码无法正确编译,但您的问题的答案是:

let doubleValue = Double(userInput.text!)!将您的代码转换为double

或使用可选的展开效果更好:

guard let text = userInput.text else {
    print("text of userInput is nil")
    return
}
guard let doubleValue = Double(text) else {
    print("Impossible to parse \(text) into Double")
    return
}
print(doubleValue)

答案 2 :(得分:0)

@IBAction func Increment(_ sender: UIButton) {
    if let text = userInput.text, var doubleText = Double(text) {
        doubleText = doubleText + 1
        userInput.text = "\(doubleText)"
    }
}

类似地,您可以写Decrement。

答案 3 :(得分:0)

@IBAction func Increment(_ sender: UIButton) {
    var inc = 0
    userInput.text = ( Double(userInput.text) + Double(inc) ).rounded(toPlaces: 1)
}