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 Protocols Swift 2.0 Protocols Protocols With Methods

How do I implement the method that makes the new color?

// Declare protocol here protocol ColorSwitchable { func switchColor(color: Color) }

enum LightState { case On, Off }

enum Color { case RGB(Double, Double, Double, Double) case HSB(Double, Double, Double, Double) }

class WifiLamp: ColorSwitchable { let state: LightState var color: Color

func switchColor(color: Color) { return Color }

init() { self.state = .On self.color = .RGB(0,0,0,0) } }

Andis Slaitas
Andis Slaitas
3,430 Points

I was stuck here too. Please look at Michael Reining's answer on my post.

1 Answer

Jens Hagfeldt
Jens Hagfeldt
16,548 Points

Hi Khambrel. You got the first part of the challenge right adding the colon and Protocols name after the classes name. The second part (implementing the method that makes the new color) I made by adding the method demanded by the protocol like here below after the second comment.

/* 1 - Make WifiLamp adopt the ColorSwitchable protocol 
    by adding a colon and Protocols name after the 
    classes name */
class WifiLamp: ColorSwitchable {
    let state: LightState
    var color: Color

    init() {
        self.state = .On
        self.color = .RGB(0,0,0,0)
    }

    /* 2 - Implement the method making new color here */
    func switchColor(color: Color) {
        self.color = color
    }
}

I hope this helped you a bit - Happy coding!

/ Jens