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

Don't even understand what this is asking.

It keeps telling me to make a method, doing it just like we did it in the video but it is currently not working.

protocols.swift
// Declare protocol here
protocol ColorSwitchable {
  func color() -> (color: Color)
}

enum LightState {
  case On, Off
}

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

class WifiLamp {
  let state: LightState
  var color: Color

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

1 Answer

Paul Karim
Paul Karim
3,428 Points

Hey Raleigh, you almost got it just wrote your requirement incorrectly.

Where you wrote func color() -> (color: Color). It's suppose to be func switchColor(color: Color)

Why? Well 1. The instructions state the functions name needs to be switchColor. 2. The instructions also state that the functions only needs to take a Color argrument. Which means your parameters need to take a Color object. What you did was say the color function takes NO parameters and RETURNS a color object.

Hope that helps! Ask again if you're still confused :)