在swift

时间:2015-11-20 12:05:05

标签: ios arrays swift mutable

我是swift的新手,为有趣的问题道歉,但我对这个可选类型和展开的东西非常感兴趣。

所以,我正在尝试创建一个计算器,我有一个UITextField来显示按下时的数字或计算后的结果,当然还有一些代表数字的按钮。

enter image description here

现在我附加了操作方法,我的数字按钮和返回按钮正确。

我的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)
}

2 个答案:

答案 0 :(得分:1)

将初始化程序转换为

var digitArray = [String]()

答案 1 :(得分:1)

digitArray已声明但尚未初始化。

var digitArray = [String]()

初始值设定项语法是类型let x = Type()之后的一对括号,或者是带有类型注释和一对方括号let x : [Type] = []的数组的情况。

当编译器推断出类型时,不需要声明[String]

尽可能将变量声明为非可选变量,编译器将为您提供更多更好的帮助。