打开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 }