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!
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
Peter Fuhrey
2,146 PointsDoes self refer to the actual data type?
Just a quick question. So like in Amit's enum example where he creates an enum Day and then goes through the initializer and methods and everything. When he's using self like in the init for example is that referring to the actual data type, so in this case Day?
1 Answer

Chris Shaw
26,663 PointsHi Peter,
Just for clarity self
isn't generic to say the enum Day
, this keyword refers to the instance of Day
which is important to remember as most of the code we will be writing will be reusable; resulting in a lot of instances, one example of where self
has no access is a class func
which is similar to a standard function with the minor difference that it's contained within a static context meaning we don't need to first create an new instance of the class but we don't have access to self
either.
class MyClass {
class func sayHello(name: String) {
println("Hello \(name)")
}
}
MyClass.sayHello("Chris")
In the above example you can see I'm calling the sayHello
method using MyClass
without creating a new instance of it first, as I said above this is a static method therefore self
can't be used.
Hope that helps.