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 Protocols in Swift Protocol Basics Protocols With Methods

Ivalo Pajumets
Ivalo Pajumets
7,771 Points

What am I doing wrong? Been battling with this error for a long time now. Says my code could not be compiled.

Tried xCode, no errors. Only thing that xCode shows is an issue about the underscore in the switchColor method arguments'

protocols.swift
// 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 colorSwitch(color: Color) {
    self.color = color
  }

}

2 Answers

Sabrina Wilbert
Sabrina Wilbert
7,315 Points

Hi,

The function should be called switchColor not colorSwitch.

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

Ivalo Pajumets
Ivalo Pajumets
7,771 Points

What an easy mistake. Thanks for noticing! Additionally, underscore must be added too. Otherwise not able to complete the challenge.