我正在使用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
}
}
用户将能够输入数字并以某个输入值递增或递减该数字。
答案 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)
}