Unexpectedly found nil while unwrapping an Optional value

 @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()

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 ?

Unexpectedly found nil while unwrapping an Optional value
 
 
Q