打开UIButton标题:types“String”的expression式模式不能匹配“String ?!”types的值

我试图在@IBAction方法中使用一个开关,该方法挂钩了多个button

 @IBAction func buttonClick(sender: AnyObject) { switch sender.currentTitle { case "Button1": print("Clicked Button1") case "Button2": print("Clicked Button2") default: break } 

当我尝试上述,我得到以下错误:

“String”types的expression式不能匹配“String ?!”types的值

currentTitle是一个可选的,所以你需要解开它。 此外, sender的types应该是UIButton因为您正在访问currentTitle属性。

 @IBAction func buttonClick(sender: UIButton) { if let theTitle = sender.currentTitle { switch theTitle { case "Button1": print("Clicked Button1") case "Button2": print("Clicked Button2") default: break } } } 

解开currentTitle另一种方法,我认为更优雅的是:

 switch sender.currentTitle ?? "" { //case statements go here }