私は異なる状況でタイトルを変更するUIButtonを持っています。 ボタンを押すと、Swift Switch(および特定のコードが実行された)によって現在のTitleがチェックされます。
次のことは働いていません:
@IBAction func button(_ sender: UIButton) {
switch sender.currentTitle {
case "":
//Code
case "OK":
//Code
default:
}
}
Xcodeは「期待パターン」(第1の原因)と「期待表現」(第2の場合)
回答:
回答№1は1ドキュメントごとに、 UIButton.currentTitle
タイプは String?
。 (オプションのString型)
きみの switch
ステートメントは、オプションのタイプを非オプションのタイプと比較しているため、エラーが表示されます。
それをチェックする前に値をアンラッピングして最初に提案してください。 switch
次のように:
guard let title = sender.currentTitle() else { return }
switch title {
...
}
回答№2の場合は0
switch文のすべての場合には、1行のコードが必要です。あなたが使用できる何かをしたくないなら break
:
@IBAction func button(_ sender: UIButton) {
switch sender.currentTitle {
case "":
//Code
case "OK":
//Code
default:
break
}
}
回答№3の場合は-1
私は疑問符を付け加えて偶然問題を解決した
@IBAction func button(_ sender: UIButton) {
switch sender.currentTitle {
case ""?:
//Code
case "OK"?:
//Code
default:
break
}
}
私は理由を知ることはできませんが、それでも私を助けてくれてありがとうございます。