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

Devansh Sanghvi
PLUS
Devansh Sanghvi
Courses Plus Student 934 Points

The error shows that i should use custom initializer, which i am doing, still it shows the same error. what is wrong

is there any syntax error in my code, please help me out.

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 = red
        self.green = green
        self.blue = blue
        self.alpha = alpha

        var description = "red: \(red) , green : \(green) , blue : \(blue), alpha: \(alpha) "
        self.description = description
    }
}

2 Answers

Martin Wildfeuer
PLUS
Martin Wildfeuer
Courses Plus Student 11,071 Points

Syntax errors are easily identified by Xcode, so I would suggest to paste this code into a Playground and see if the compiler generates any warnings or errors for a start. That is more reliable than the online console and helps you do avoid mistakes in a very early stage.

However, syntax errors are not the problem here:

  1. You have created the custom initializer correctly, but you don't want to pass the description as an argument, as you are creating it automatically in your init method. So just omit the description parameter, you did not assign it anywhere anyhow.

  2. The description string you are assembling does not match the assignment, as it contains spaces before commas etc. It is very important to exactly stick to the assignment here, otherwise your code, although it works, does not meet the expectations of code check.

Taking this into account, the following should pass:

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

        self.red = red
        self.green = green
        self.blue = blue
        self.alpha = alpha

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

Hope that helps :)