我在让我的一个视图控制器识别文本输入时遇到了一些困难。我得到“无法将类型'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()
答案 0 :(得分:1)
如果Goal类的初始化程序需要将值作为Int,则需要将其显式地从String转换为Int才能生效。
mydf <- Filter(function(x)!all(is.na(x) || is.null(x) || x == "" || x == 0), mydf)
请注意,这会生成一个可选值,因此,如果您的Goal init不接受选项,则必须将其解包。