我是Swift和iOS开发的新手,所以我正在尝试构建一个用于学习目的的计算器应用程序。但是,我遇到了一个错误。我用我们所代表的数字命名了所有按钮,所以我通过sender.titleLabel.text在buttonPress IBAction中检索标题。然后,我将其传递给switch语句,以确定该按钮是数字还是操作符。
func handleButton (sender:UIButton) {
switch sender.titleLabel.text {
case "1","2","3","4","5","6","7","8","9","0" :
println(sender.titleLabel.text)
default:
break
}
}
错误是sender.titleLabel.text不会绑定到我输入的字符串值 - 也不会绑定任何字符串值 - 即使它是String类型。
答案 0 :(得分:5)
目前编译器中似乎存在一个错误,其中Implicitly Unwrapped Optionals不能在switch语句中使用。相反,您可以使用可选绑定来满足编译器。作为额外的加号,这将处理titleLabel.text为零的情况。
func handleButton (sender:UIButton) {
if let text = sender.titleLabel.text {
switch text {
case "1","2","3","4","5","6","7","8","9","0" :
println(sender.titleLabel.text)
default:
break
}
}
else {
// sender.titleLabel.text is nil
}
}