如何在交换机中检查UIButton的currentTitle?

问题描述:

我有一个UIButton在不同情况下改变标题。 如果按下按钮,应该用Swift Switch(并执行某个代码)检查currentTitle。如何在交换机中检查UIButton的currentTitle?

下不工作:

@IBAction func button(_ sender: UIButton) { 
    switch sender.currentTitle { 
    case "": 
     //Code 
    case "OK": 
     //Code 
    default: 
} 
} 

Xcode的只是显示“预期模式”(第一原因)和“预期的表达”(第二种情况)

+0

其实这个代码将不会导致'预计Expression'错误。 – vadian

+0

重要的是要确保在每个'case'和'default'下有一些可执行语句。 “break”或“return”也可以工作 – Dopapp

switch语句每个案件必须有一行代码。如果你不想做任何事情,你可以使用break

@IBAction func button(_ sender: UIButton) { 
    switch sender.currentTitle { 
    case "": 
     //Code 
    case "OK": 
     //Code 
    default: 
     break 
    } 
} 
+0

哦,对不起。有一次休息,但我在这里忘了。 – C0d0r

+0

@ C0d0r哪行代码导致错误? – Paolo

+0

如果您重建项目,错误消失,这些案例显示错误 – C0d0r

我加入的问题意外地解决了这个问题,标志着

@IBAction func button(_ sender: UIButton) { 
switch sender.currentTitle { 
case ""?: 
    //Code 
case "OK"?: 
    //Code 
default: 
    break 
} 
} 

我不知道为什么,但它帮助工作仍然感谢我。

根据说明书,UIButton.currentTitle的类型为String?。 (可选类型字符串)

您的switch语句将可选类型与非可选类型进行比较,这是您看到错误的原因。

检查它与前值建议首先展开了价值switch,如:

guard let title = sender.currentTitle() else { return } 

switch title { 
... 
}