/ / Jak mogę sprawdzić aktualnyTytuł Uibuttonu w przełączniku? - swift, uibutton, switch-statement

Jak mogę sprawdzić aktualnyTytuł UIButton w przełączniku? - swift, uibutton, switch-statement

Mam UIButton, który zmienia tytuł w różnych sytuacjach. Jeśli naciśniesz przycisk, bieżącyTytuł powinien zostać sprawdzony przez Swift Switch (i wykonanie określonego kodu).

Następujące nie działa:

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

Xcode pokazuje "Oczekiwany schemat" (pierwsza przyczyna) i "Oczekiwana ekspresja" (2. przypadek)

Odpowiedzi:

1 dla odpowiedzi № 1

według dokumentacji, UIButton.currentTitle jest typu String?. (opcjonalny typ String)

Twój switch Instrukcja porównuje typ opcjonalny z typem nie-opcjonalnym, który jest przyczyną błędów.

Zaproponuj najpierw rozpakowanie wartości przed sprawdzeniem jej wartości za pomocą switch lubić:

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

switch title {
...
}

0 dla odpowiedzi nr 2

Każdy przypadek w instrukcji switch musi mieć linię kodu. Jeśli nie chcesz nic zrobić, możesz użyć break:

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

-1 dla odpowiedzi nr 3

Rozwiązałem problem przez przypadek dodając znaki zapytania

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

Nie wiem dlaczego, ale mimo to dziękuje za pomoc.