OGeek|极客世界-中国程序员成长平台

标题: ios - 尝试将 UITextField 文本转换为 Int Xcode 7 时出现错误 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 15:51
标题: ios - 尝试将 UITextField 文本转换为 Int Xcode 7 时出现错误

我是编程新手,在完成了一些在线教程后,我决定使用 Xcode 7 制作自己的应用程序,以便能够在我的 iPhone 上运行我的应用程序。但是,当我尝试从文本字段中获取输入数据并将其放入 var 时,它会给我一个错误。我尝试使用以下内容:

var initialChips = 0
var initialBlind = 0

@IBOutlet weak var txtBlind: UITextField!
@IBOutlet weak var txtChips: UITextField!
@IBOutlet weak var doneBtn: UIBarButtonItem!

@IBAction func doneBtn(sender: AnyObject) {

    let initialChips:Int? = Int(txtChips.text)
    let initialBlind:Int? = Int(txtBlind.text)
}

Xcode 会要求输入一个“!”在“.text”之后,但在这样做之后它给了我一个警告:“初始化不可变值'initialChips'(或'initialBlind'从未使用过:考虑替换为'_'或删除它”。

如何为我的 var 设置值?



Best Answer-推荐答案


问题是 let initialChips:Int? = Int(txtChips.text) 生成一个名为 initialChips 的新变量(与类中的变量不同)。 letvar 的区别在于 let 是不可变的,而 var 不是。你应该这样做:

initialChips = Int(txtChips.text)

UITextField 中的整数分配给您的类变量,而不是声明一个新的不可变变量(同名)并且不对其进行任何操作。

当然,initialBlind

也是如此

编辑:

尝试以下方法:

@IBAction func doneBtn(sender: AnyObject) {

    if let initialChips = Int(txtChips.text!) {
        self.initialChips = initialChips
    }else {
        self.initialChips = 0
    }

    if let initialBind = Int(txtBind.text!) {
        self.initialBind = initialBind
    }else {
        self.initialBind = 0
    }
}

关于ios - 尝试将 UITextField 文本转换为 Int Xcode 7 时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31506824/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4