NEW: Subscribe to Hacking with Swift+ and accelerate your learning! >>

Pass button title to function - nil while unwrapping optionals

Forums > Swift

Hello everybody,

I am using a button trigger in Playgrounds to pass the button title to a function in another class.

@objc func letterButtonPressed(_ sender: UIButton) {  

        sender.isHidden = true  
        hiddenButtons.append(sender)  

        letter = sender.currentTitle?.uppercased()  

        if letter != nil {  
            game.checkLetterInWord(letter: letter!)  
        }  
}  

In this function above I check if the letter is nil first, so I don't undertstand why the function finds nil...

public func checkLetterInWord(letter: String!) -> Bool {  
        print(letter!)  
        let wordCharacters = Array(word)  
        print(wordCharacters)  

        return true  
}  

What am I doing wrong? Thank you for you help!

   

So which one of the following is happening?

  1. the checkLetterInWord function never gets called?
  2. the line print(letter!) prints out nil?
  3. the line print(wordCharacters) prints out nil?

I don't see (2) or (3) happening unless you're calling the function somewhere else in your code. Can you give us more details?

   

Also please look into if let and guard beacuse using force unwrapping is dangerous and not considered a good practice

   

Hacking with Swift is sponsored by Paw

SPONSORED Use Paw to build, test and describe web APIs. Paw has a lightning fast native macOS interface to compose requests, collaborate in real-time on API specs, and generate client code for your applications. You can import and export API definitions.

Discover Paw for Mac

Sponsor Hacking with Swift and reach the world's largest Swift community!

Reply to this topic…

You need to create an account or log in to reply.

All interactions here are governed by our code of conduct.

 
Unknown user

Not logged in

Log in
 

Link copied to your pasteboard.