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 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

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.