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

Alin Stanescu
Alin Stanescu
15,793 Points

I don't know what I am missing here...

func getTowerCoordinates(location: String)->(Double, Double){ var lat = 0.0 var lon = 0.0 switch location { case "Eiffel Tower": lat = 48.8582 lon = 2.2945

case "Great Pyramid": 
lat = 29.9792
lon = 31.1344

case "Sydney Opera House": 
lat = 33.8587
lon = 151.2140

default: 
lat
lon

}

return (lat, lon) }

functions.swift
// Enter your code below
func getTowerCoordinates(location: String)->(Double, Double){
  var lat = 0.0
  var lon = 0.0
  switch location {
    case "Eiffel Tower": 
    lat = 48.8582
    lon = 2.2945

    case "Great Pyramid": 
    lat = 29.9792
    lon = 31.1344

    case "Sydney Opera House": 
    lat = 33.8587
    lon = 151.2140

    default: 
    lat
    lon
  }

  return (lat, lon)
}

2 Answers

You're assigning variables to values in the key value pairs which is unnecessary for the challenge. While what you did will work IRL, you just need to return it like a standard coordinate. In the long run it may be better to return like this anyways since if you work with maps, they'll generally work in (lat,long) notation, though, I'm sure you can change that if needed.

func getTowerCoordinates (location: String) -> (Double, Double) {
    switch location {
    case "Eiffel Tower": return (48.8582, 2.2945)
    case "Great Pyramid": return (29.9792, 31.1344)
    case "Sydney Opera House": return (33.8587, 151.2140)
    default: return (0,0)
}
}
Mike Gomes
Mike Gomes
15,391 Points

Thanks Ian Han, it worked for me :)