@IBAction func letterButtonPressed(_ sender: UIButton) { sender.isEnabled = false let letterString = sender.title(for: .normal)! let letter = Character(letterString.lowercased()) currentGame.playerGuessed(letter: letter) updateGameState() } func updateGameState() { if currentGame.incorrectMovesRemaining == 0 { totalLosses += 1 } else if currentGame.word == currentGame.formattedWord { totalWins += 1 } else { updateUI()
Unexpectedly found nil while unwrapping an Optional value
don't force unwrap let letterString = sender.title(for: .normal)!
@IBAction func letterButtonPressed(_ sender: UIButton) {
// unwrap the optional response from sender.title(for:) else return from method
guard let letterString = sender.title(for: .normal) else { return }
sender.isEnabled = false
let letter = Character(letterString.lowercased())
currentGame.playerGuessed(letter: letter)
updateGameState()
}
func updateGameState() {
if currentGame.incorrectMovesRemaining == 0 {
totalLosses += 1
} else if currentGame.word == currentGame.formattedWord {
totalWins += 1
} else {
updateUI()
}
}
but not the button functions dont work on the pie
What do you get ? What did you expect ?
Instrument code to understand what's going on:
print("Title", sender.title(for: .normal))
guard let letterString = sender.title(for: .normal) else { return }
Do you get nil ?