Ayu Ayu - 1 year ago 88
Swift Question

When should I use deinit?

I came across a function called

while reading the programming guide, but I'm still wondering why and when do we need to implement it since the we don't really need to manage memory.


Answer Source

It's not required that you implement that method, but you can use it if you need to do some action or cleanup before deallocating the object.

The Apple docs include an example:

struct Bank {
    static var coinsInBank = 10_000
    static func vendCoins(var numberOfCoinsToVend: Int) -> Int {
        numberOfCoinsToVend = min(numberOfCoinsToVend, coinsInBank)
        coinsInBank -= numberOfCoinsToVend
        return numberOfCoinsToVend
    static func receiveCoins(coins: Int) {
        coinsInBank += coins

class Player {
    var coinsInPurse: Int
    init(coins: Int) {
        coinsInPurse = Bank.vendCoins(coins)
    func winCoins(coins: Int) {
        coinsInPurse += Bank.vendCoins(coins)
    deinit {

So whenever the player is removed from the game, its coins are returned to the bank.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download