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 trialEvan Bloom
2,607 PointsI don't know what I am doing wrong for task 2. I have to set color to the new color. Please help!!!
I am not sure what I am doing wrong.
// 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
init() {
self.state = .on
self.color = .rgb(0,0,0,0)
}
}
func switchColor (_ color: Color) {
self.color = color
}
2 Answers
Chris Stromberg
Courses Plus Student 13,389 PointsCheck your placement of the following code:
func switchColor (_ color: Color) {
self.color = color
}
Bharath Chandrashekar
iOS Development with Swift Techdegree Graduate 12,055 PointsYou have done almost everything right. The only thing missed - Your method definition should be within the class and not outside. Something like this:
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
init() {
self.state = .on
self.color = .rgb(0,0,0,0)
}
func switchColor(_ color: Color) {
self.color = color
}
}
The class WifiLamp adopts the ColorSwitchable protocol and hence the method declared in the protocol should be defined inside the WifiLamp class.
Hope this helps.
Evan Bloom
2,607 PointsThanks Bharath Chandrashekar!! It worked!!
Evan Bloom
2,607 PointsEvan Bloom
2,607 PointsThanks Chris!!