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]

尽可能将变量声明为非可选的,你会得到编译器更多更好的帮助。