用户希望将整数输入到文本字段

时间:2017-10-23 17:38:49

标签: swift uitableview class parameters textfield

我在让我的一个视图控制器识别文本输入时遇到了一些困难。我得到“无法将类型'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()

Pic of UI

1 个答案:

答案 0 :(得分:1)

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

mydf <- Filter(function(x)!all(is.na(x) || is.null(x) || x == "" || x == 0), mydf)

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