Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

iOS Swift Functions and Optionals Parameters and Tuples Tuples

Code Challenge Error

What's wrong with this code challenge (step 2)?

func greeting(person: String) -> (greeting: String, language: String) { let language = "English" let greeting = "Hello (person)"

   var result = greeting("Tom")
   return result

}

Daniel Marin
Daniel Marin
8,021 Points

Both values language and greeting need to be returned. Working example:

func greeting(person: String) -> (greeting: String, language: String) {
    let language = "English"
    let greeting = "Hello \(person)"

    return (greeting, language)
}

1 Answer

What you're doing is recursion. You're calling greeting within greeting, then returning that as the result. What the challenge wants you to do is, store the value outside of the function greeting (below it). What good is this variable if we can't access it outside the scope of the greeting function.

I do recommend you use the Preview tab with when doing the Swift videos, it helps a lot.