【问题标题】:User expected to input integer into Text Field [duplicate]用户希望在文本字段中输入整数 [重复]
【发布时间】:2017-10-23 17:38:48
【问题描述】:

让我的一个视图控制器识别文本输入时遇到了一些困难。我收到“无法将'String'类型的值转换为预期的参数类型'Int'”错误。我已经看到一些关于 String/Int 转换的堆栈溢出问题,但似乎没有一个可以解决这种特定情况。

用户需要在文本字段中输入一个数字来设置 pointsNeededText 的值。然而,Goal 类的参数声明该变量是一个 Int。如何让用户在文本字段中输入数字并将其识别为 Int?我将该特定文本字段的键盘类型设置为数字键盘。这甚至是最好的方法吗?是否应该将其设置为文本字段以外的内容?我是这方面的新手,所以任何和所有的帮助都将不胜感激!谢谢!

import UIKit

class AddGoalsTableViewController: UITableViewController {

    var goal:Goal?

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if segue.identifier == "SaveGoal" {
            goal = Goal(goalText: nameOfRewardText.text!, pointsToCompleteGoal: pointsNeededText.text!, pointsEarnedTowardsGoal: goalProgressText.text!)
        }
    }

    @IBOutlet var goalTableTitleText : UILabel!
    @IBOutlet weak var goalProgressText: UILabel!
    @IBOutlet weak var nameOfRewardText: UITextField!
    @IBOutlet weak var pointsNeededText: UITextField!
    @IBOutlet weak var repeatSwitch: UISwitch!


override func viewDidLoad() {
    super.viewDidLoad()

【问题讨论】:

    标签: swift uitableview class parameters textfield


    【解决方案1】:

    如果 Goal 类的初始化程序需要 Int 值,您需要将其从 String 显式转换为 Int 才能工作。

    let integerValue = Int(stringValue)
    

    请注意,这会生成一个可选值,因此,如果您的 Goal init 不接受可选值,则必须解包。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-06
      • 2017-08-15
      相关资源
      最近更新 更多