我是swift的新手,为有趣的问题道歉,但我对这个可选类型和展开的东西非常感兴趣。
所以,我正在尝试创建一个计算器,我有一个UITextField来显示按下时的数字或计算后的结果,当然还有一些代表数字的按钮。
现在我附加了操作方法,我的数字按钮和返回按钮正确。
我的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)
}
答案 0 :(得分:1)
将初始化程序转换为
var digitArray = [String]()
答案 1 :(得分:1)
digitArray
已声明但尚未初始化。
var digitArray = [String]()
初始值设定项语法是类型let x = Type()
之后的一对括号,或者是带有类型注释和一对方括号let x : [Type] = []
的数组的情况。
当编译器推断出类型时,不需要声明[String]
。
尽可能将变量声明为非可选变量,编译器将为您提供更多更好的帮助。