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.