NEW: Master Swift design patterns with my latest book! >>

< Previous: Copying objects   Next: Mutability >


The fourth difference between classes and structs is that classes can have deinitializers – code that gets run when an instance of a class is destroyed.

To demonstrate this, here’s a Person class with a name property, a simple initializer, and a printGreeting() method that prints a message:

class Person {
    var name = "John Doe"

    init() {
        print("\(name) is alive!")

    func printGreeting() {
        print("Hello, I'm \(name)")

We’re going to create a few instances of the Person class inside a loop, because each time the loop goes around a new person will be created then destroyed:

for _ in 1...3 {
    let person = Person()

And now for the deinitializer. This will be called when the Person instance is being destroyed:

deinit {
    print("\(name) is no more!")

Become a Swift guru

I wrote a book called Pro Swift that's dedicated to helping you master the Swift language, and it includes seven hours of video demonstrating each technique!

< Previous: Copying objects   Next: Mutability >
Click here to visit the Hacking with Swift store >>