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 Functions in Swift Adding Power to Functions Returning Complex Values

Could not figure out how to move forward from this.

Can i ask someone to explain to me what i am doing wrong as they write out the proper way to write it?

functions.swift
// Enter your code below

func coordinates (for location: String) -> (Double,Double){

    switch location {
        case "Eiffel Tower": 48.8582, 2.2945
        case "Great Pyramid": 29.9792, 31.1344
        case "Sydney Opera House": 33.8587, 151.2140 
        default: (0,0) }
    return (0,0)
}

Hey Eddie,

You have the gist of it your just missing some small things

// Your declaration of the function is perfect
func coordinates(for location: String) -> (Double, Double) {
     //Using a switch is a great way to solve this challenge
    switch location {
        case "Eiffel Tower": 
         // You were just missing the return statement and parenthesis to make this a tuple
        return (48.8582, 2.2945)
        case "Great Pyramid":  return (29.9792, 31.1344)
        case "Sydney Opera House": return (33.8587, 151.2140) 
        default: 
        // We break out of the switch if none of the cases match
        break 
        }
    // If none of the cases match we return (0, 0)
    return (0,0)
}

1 Answer

Arman Arutyunov
Arman Arutyunov
21,900 Points

Hello. The problem in your code is that you always return a tuple (0,0). In the challenge you are asked to return the exact geolocation of the building that was passed as the parameter. So you can put your return statement at every line of switch cases (even the default: so if the location parameter is not matching with your switch cases it will just return (0,0)

func coordinates (for 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) 
    }
}

Hope it helps!