Swift学习笔记-析构过程

析构器只适用于类类型,当一个类的实例被释放前,析构器会被立即调用(类似delloc?)。析构器用关键字deinit。

析构过程原理

在类的定义中,每个类最多只能有一个析构器,而且析构器不带任何参数。
析构过程类似于delloc。

class Bank {
    static var coinsInBank = 10_000
    
    static func distribute(coins numberOfCoinsRequest:Int) -> Int {
        
        let numberOfCoinsToVend = min(numberOfCoinsRequest, coinsInBank)
        
        coinsInBank -= numberOfCoinsToVend
        
        return numberOfCoinsToVend
    }
    
    static func receive (coin:Int) {
        coinsInBank += coin
    }
}

class Player {
    var coinsInPurse : Int
    
    init(coins:Int) {
        coinsInPurse = Bank.distribute(coins: coins)
    }
    
    func wins(coins:Int) {
        coinsInPurse += Bank.distribute(coins: coins)
    }
    
    deinit {
        Bank.receive(coin: coinsInPurse)
    }
}

你可能感兴趣的:(Swift学习笔记-析构过程)