14.初期化解除(指示)


クラスインスタンスが割り当て解除される前に、キャンセル初期化構文が呼び出されます.Initキーワードを使用して初期化構文を記述するのと同様に、deinitキーワードを使用して初期化構文を記述解除します.これはクラスタイプでのみ使用されます.

初期化操作のキャンセル

  • SWIFTでは、不要になったときにインスタンスの割り当てが自動的にキャンセルされ、リソースが確保されます.「自動参照カウント」(Automatic Reference Counting)で説明したように、インスタンスメモリを管理します.
  • deinit {
    	//작동 동작 정의
    }
    // 다음과 같이 deinit키워드를 통해서 초기화 해제 구문을 정의할 수 있다.
    
    class Player {
    	var coinsInPurse : Int
        init(coins : Int) {
        	coinsInPurse = Bank.distribute(coins: coins)
        }
        
        func win(coins : Int) {
        	coinsInPurse += Bank.distribute(coins : coins)
        }
        
        deinit {
        	Bank.receive(coins : coinsInPurse) 
        }
    }
    //다음과 같이 클래스의 초기화 해제시의 동작을 메서드로 표현해서 명시할 수 잇따.