Way of providing code that runs when something is deinitialized. These are mostly equivalent, the main difference in Swift is whether the reference to the object is live when the code runs.