尝试将 UITextField 文本转换为 Int Xcode 7 时出现错误
When trying to convert a UITextField text to Int Xcode 7 gives me an error
我是编程新手,在网上学习了一些教程后,我决定用 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”之后但在这样做之后它给了我一个警告:"Initialization of immutable value 'initialChips' (or 'initialBlind' was never used: consider replacing with assignment to '_'or removing it".
如何为我的 var 设置值?
您应该在右括号之后添加 !
,而不是在 .text
之后,如下所示:
let initialChips:Int? = Int(txtChips.text)!
问题是 let initialChips:Int? = Int(txtChips.text)
生成了一个名为 initialChips
的新变量(不同于 class 中的变量)。 let
和 var
的区别在于 let
是不可变的而 var 不是。你应该这样做:
initialChips = Int(txtChips.text)
将 UITextField
中的整数分配给您的 class 变量,而不是声明一个新的不可变变量(具有相同的名称)并且不对其进行任何操作。
当然,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
}
}
我是编程新手,在网上学习了一些教程后,我决定用 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”之后但在这样做之后它给了我一个警告:"Initialization of immutable value 'initialChips' (or 'initialBlind' was never used: consider replacing with assignment to '_'or removing it".
如何为我的 var 设置值?
您应该在右括号之后添加 !
,而不是在 .text
之后,如下所示:
let initialChips:Int? = Int(txtChips.text)!
问题是 let initialChips:Int? = Int(txtChips.text)
生成了一个名为 initialChips
的新变量(不同于 class 中的变量)。 let
和 var
的区别在于 let
是不可变的而 var 不是。你应该这样做:
initialChips = Int(txtChips.text)
将 UITextField
中的整数分配给您的 class 变量,而不是声明一个新的不可变变量(具有相同的名称)并且不对其进行任何操作。
当然,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
}
}