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 Classes in Swift Instances of Classes

William Humphrey
William Humphrey
5,543 Points

I'm stuck.

I know its giving me an error but i don't know why or how to fix it.

objects.swift
// Enter your code below
class Shape{

    var numberOfSides: Int

    init(numberOfSides: Int) {
        let self.numberOfSides = numberOfSides
    }

}
let someShape = Shape(numberOfSides: 3)

1 Answer

Amrit Pandey
Amrit Pandey
17,595 Points

I too had a hard time learning Constructors or Initializers in Object Oriented language,

So, here is what is happening. You use init method to initialize any state or property in class, here we have numberOfSides to be initialized right? We can simple set its value to any number say 2,3,45... etc. and say that numberOfSides is initialized, by hey guess what, whenever you'll make new object each object will have same sides right?

So we use init method, so that user can individually set the numberOfSides when they create new object.

// Enter your code below

class Shape{
  var numberOfSides: Int;

  init (numberOfSides: Int){
    self.numberOfSides = numberOfSides;
  }
}

let someShape = Shape(numberOfSides: 4);

self.numberOfSides is the property of class, numberOfSides is simply the value u will use to initialize you object.