14. 초기화 해제(deinitialization)

초기화 해제 구문은 클래스 인스턴스가 할당 해제되기 전에 즉시 호출된다. 초기화 구문은 init 키워드로 작성하는 것과 유사하게 초기화 해제는 deinit 키워드로 작성한다. 이는 클래스 타입에서만 사용한다.

초기화 해제 동작

  1. 스위프트는 더 이상 필요하지 않은 경우 자원의 확보를 위해서 인스턴스를 자동으로 할당 해제한다. 스위프트 자동 참조 카운팅(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) 
    }
}
//다음과 같이 클래스의 초기화 해제시의 동작을 메서드로 표현해서 명시할 수 잇따.

좋은 웹페이지 즐겨찾기