我有一个UIButton,可以在不同情况下更改标题。 如果按下按钮,则应通过Swift Switch检查currentTitle(并执行某些代码)。
以下内容尚无效:
@IBAction func button(_ sender: UIButton) {
switch sender.currentTitle {
case "":
//Code
case "OK":
//Code
default:
}
}
Xcode只显示"预期模式" (第一个原因)和"预期表达" (第二种情况)
答案 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
}
}
我不知道为什么,但它仍然有效帮助我。