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

时间:2017-07-27 18:48:36

标签: swift uibutton switch-statement

我有一个UIButton,可以在不同情况下更改标题。 如果按下按钮,则应通过Swift Switch检查currentTitle(并执行某些代码)。

以下内容尚无效:

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

Xcode只显示"预期模式" (第一个原因)和"预期表达" (第二种情况)

3 个答案:

答案 0 :(得分:1)

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

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

建议首先解开该值,然后使用switch检查其值:

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

switch title {
 ...
}

答案 1 :(得分:0)

switch语句中的每个case都必须有一行代码。如果您不想做任何事情,可以使用break

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

答案 2 :(得分:-1)

我通过添加问号

意外地解决了这个问题
@IBAction func button(_ sender: UIButton) {
switch sender.currentTitle {
case ""?:
    //Code
case "OK"?:
    //Code
default:
    break
}
}

我不知道为什么,但它仍然有效帮助我。