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 2.0 Complex Data Structures Custom Initializers

Makan F
Makan F
9,434 Points

need some assistance

need help

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, description: String) {
      self.red = 86.0
      self.green = 191.0
      self.blue = 131.0
      self.alpha = 1.0

    }


}

1 Answer

They faked you out with the examples. What they were trying to say that if the initializer were called with those values, then .... Try this instead:

    init(red: Double, green: Double, blue: Double, alpha: Double) {
      self.red = red
      self.blue = blue
      self.green = green
      self.alpha = alpha
      description = "red: \(red), green: \(green), blue: \(blue), alpha: \(alpha)"
    }

If you call this initializer with the example values:

let color = RGBColor(red: 86.0, 191.0, 131.0, 1.0)

then the initializer would take the red value and assign it to color's red member variable, it would take the green value and assign it to color's green member value, etc. At the end of the initialization the RGBColor object named color would have those 4 values stored in its member variables.