swift 中的展开问题
Unwrapping issue in swift
我是 swift 的新手,很抱歉提出有趣的问题,但我对这个可选类型和展开的东西很感兴趣。
所以,我正在尝试创建一个计算器,我有一个 UITextField 来显示按下时的数字或计算后的结果,当然还有一些代表数字的按钮。
现在我有附加的操作方法,我的数字按钮和 return 按钮正确。
我的 UITextField 声明如下,它是隐式解包的,还有一个可变字符串数组也是解包的-
@IBOutlet weak var displayTextField: UITextField!
var digitArray : [String]!
追加数字方法工作正常,只需从按钮中获取数字并通过追加将其显示在文本字段中。但是我在 enter 方法中遇到了 Bad Access 错误。我想,我正试图不正确地在数组中添加项目。谁能帮帮忙
@IBAction func appendDigit(sender: UIButton) {
let digit = sender.currentTitle!
displayTextField.text = digit + displayTextField.text
}
@IBAction func enter(sender: UIButton) {
digitArray.append(displayTextField.text)
}
将初始化程序转换为
var digitArray = [String]()
digitArray
已声明但未初始化。
var digitArray = [String]()
初始化器语法是类型 let x = Type()
后的一对括号,或者在带有类型注释的数组和一对方括号 let x : [Type] = []
.
的情况下
由于编译器会推断类型,因此不需要声明 [String]
。
尽可能将变量声明为非可选的,你会得到编译器更多更好的帮助。
我是 swift 的新手,很抱歉提出有趣的问题,但我对这个可选类型和展开的东西很感兴趣。
所以,我正在尝试创建一个计算器,我有一个 UITextField 来显示按下时的数字或计算后的结果,当然还有一些代表数字的按钮。
现在我有附加的操作方法,我的数字按钮和 return 按钮正确。
我的 UITextField 声明如下,它是隐式解包的,还有一个可变字符串数组也是解包的-
@IBOutlet weak var displayTextField: UITextField!
var digitArray : [String]!
追加数字方法工作正常,只需从按钮中获取数字并通过追加将其显示在文本字段中。但是我在 enter 方法中遇到了 Bad Access 错误。我想,我正试图不正确地在数组中添加项目。谁能帮帮忙
@IBAction func appendDigit(sender: UIButton) {
let digit = sender.currentTitle!
displayTextField.text = digit + displayTextField.text
}
@IBAction func enter(sender: UIButton) {
digitArray.append(displayTextField.text)
}
将初始化程序转换为
var digitArray = [String]()
digitArray
已声明但未初始化。
var digitArray = [String]()
初始化器语法是类型 let x = Type()
后的一对括号,或者在带有类型注释的数组和一对方括号 let x : [Type] = []
.
由于编译器会推断类型,因此不需要声明 [String]
。
尽可能将变量声明为非可选的,你会得到编译器更多更好的帮助。