Swift:UIButton textLabel.text值在switch语句中不可用

时间:2014-06-17 17:27:22

标签: ios uibutton switch-statement swift

我是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类型。

1 个答案:

答案 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
    }
}