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

why does this step not have a preview button?

Swift 2.0 Protocols. Task 2 in the last editor does not have a preview button so i cannot tell what is wrong with my code. if some one could please tell me, that'd be great!

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

  switchColor(color: Color)

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


please help. ive been trying to figure this out for about 40 minutes now. i have no idea where the error even is. i already changed the class code to "class WifiLamp: ColorSwitchable" and ive done a number of other things with the function call.

1 Answer

Keli'i Martin
Keli'i Martin
8,227 Points

It looks like you haven't actually implemented the switchColor() method. The task wants you to just set the color of the lamp to the new color that gets passed into the method. So inside your class definition, you'll want to implement the method like this:

func switchColor(color: Color) {
    self.color = color