Sobes.tech
Junior — Middle

Does the structure or class have a resource cleanup method or destructor?

sobes.tech AI

Answer from AI

In Swift, structures (struct) do not have destructors because they are value types and are managed automatically. Classes (class), however, can have a destructor — the deinit method, which is called before the instance of the class is deallocated from memory. In the destructor, resources are usually released, files are closed, subscriptions are canceled, etc.

Example of a class with a destructor:

class FileHandler {
    let fileName: String

    init(fileName: String) {
        self.fileName = fileName
        print("File opened \(fileName)")
    }

    deinit {
        print("File closed \(fileName)")
    }
}

var handler: FileHandler? = FileHandler(fileName: "data.txt")
handler = nil // calls deinit

Thus, only classes have a destructor deinit, structures do not.

Does the structure or class have a resource cleanup… - sobes.tech