Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

iOS Object-Oriented Swift Complex Data Structures Custom Initializers

I am still stuck on this initalizer method can someone please walk me through this and explain each step

Its asking me to use sting interpolation and i was given the help: The problem is that you hardcode the values although in this task you should assing values using the initializer. I probably should say that you do it on an instance. It looks like this (lets assume this struct has 2 parameters, first of type Double and the second one of type Bool). But I tried to fix and It still wasn't passing. Also it doesn't pass the challenge if I change the constants to variables.

structs.swift
struct RGBColor {
  let red: Double
  let green: Double
  let blue: Double
  let alpha: Double

  let description: String

  // Add your code below
  init(red: Double, green: Double, blue: Double, alpha: Double)
  self.red = red
  self.green = green
  self.blue = blue
  self.alpha = alpha
  description = "\(red: 86.0) \(green: 191.0) \(blue:131.0) \(alpha: 1.0)"
  return(description)

}

2 Answers

Jiri Janecek
Jiri Janecek
6,443 Points

Hi Mackenzie!

First: the code challenge doesn't say you have to return the description, so don't do it

Second: apart from the fact you still hard-code it, this won't work.

  • get rid of those numbers there (that's where you are hard-coding)
  • the description should look like this: "red: 86.0, green: 191.0, blue: 131.0, alpha: 1.0", however, your will look like this: "86.0 191.0 131.0 1.0". Add the names of colours and "," in the description
  • once you are done, try to create an instance of this struct and give it these numbers as parameters. If it look like what it should like, you've done it! :)
Andrea Miotto
seal-mask
.a{fill-rule:evenodd;}techdegree seal-36
Andrea Miotto
iOS Development Techdegree Graduate 23,357 Points

You are doing wrong some things, this is the correct way:

struct RGBColor {
  let red: Double
  let green: Double
  let blue: Double
  let alpha: Double

  let description: String

  // Add your code below
  init(red: Double, green: Double, blue: Double, alpha: Double) {
  self.red = red
  self.green = green
  self.blue = blue
  self.alpha = alpha
  self.description = "red: \(red), green: \(green), blue: \(blue), alpha: \(alpha)"
}

You were missing one brackets, you were doing wrong the string interpolation in the description property, and you shouldn't return any value.