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!

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 2.0 Functions Function Parameters Returning Complex Values

2,039 Points

help me to solve this problem. question is mentioned on the snippet.

Its getting tougher as i proceeding next steps in function. please guide me how to feel comfort while coding. i am getting nervous if i am not able to solve the challenges.

// Enter your code below

//Eiffel Tower - lat: 48.8582, lon: 2.2945 
//Great Pyramid - lat: 29.9792, lon: 31.1344 
//Sydney Opera House - lat: 33.8587, lon: 151.2140

/*Declare a function named getTowerCoordinates that takes a single parameter of type String, 
named location, and returns a tuple containing two Double values (Note: You do not have to name the return values)

Use a switch statement to switch on the string passed in to return the right set of coordinate values for the location.

For example, if I use your function and pass in the string "Eiffel Tower" as an argument, 
I should get (48.8582, 2.2945) as the value.

For the default case in the switch statement, return (0,0).*\
Anjali Pasupathy
Anjali Pasupathy
28,883 Points

Please post the code you've written, or, if you don't understand the question, specify which aspect of the question is giving you trouble. Thank you!

1 Answer

Yusuf Akbar
Yusuf Akbar
2,457 Points

Hi Sonu,

So lets break down the question.

You've been asked to create a function that takes in a single parameter and returns a tuple. Fairly straight forward:

 func getTowerCoordinates (location: String) -> (Double, Double) {


Next we have to create a switch case for the values of the locations we've been given:

switch location { case "Eiffel Tower" : coordinatesLong = 48.8582; coordinatesLat = 2.2945 case "Great Pyramid": coordinatesLong = 29.9792; coordinatesLat = 31.1344 case "Sydney Opera House": coordinatesLong = 33.8587; coordinatesLat = 151.2140 default: coordinatesLong = 0; coordinatesLat = 0 }

Remember that a switch statement requires a default case, so go ahead and create two variables before creating the switch case:

var coordinatesLong: Double

var coordinatesLat: Double

And since we've created a function, don't forget that you must have a return statement:

return (coordinatesLong, coordinatesLat)

I hope this helps :)

2,039 Points

Thanks yusuf for your precise and detailed answer. It helped me a lot.