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

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

目前编译器中似乎存在一个错误,其中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 } }