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

John Drexler
John Drexler
4,806 Points

Should the value for my description be in the initializer method?

I think the values for my colors are right, but I'm not sure where to put the string for the description property.

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

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

1 Answer

Jennifer Nordell
seal-mask
STAFF
.a{fill-rule:evenodd;}techdegree
Jennifer Nordell
Treehouse Teacher

You have the description in the right place but this isn't how they want you to initialize the RGBcolor. They want you to be able to make a new instance of a RGBColor and pass in the values to initialize it. See my code for clarification:

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

    }
}
let myColor = RGBColor(red: 86.0, green: 191.0, blue: 131.0, alpha: 1.0)
myColor.description

Here I create a new instance of RGBColor and assign it to a constant called myColor. Then I access the description of myColor which I could also return to a variable or pass to something else if needed.