swift 공식 문서
[iOS - swift 공식 문서] 14. Deinitialization (인스턴스 해제 초기화)
jake-kim
2021. 7. 11. 00:02
Deinitialization
- deinitializer는 클래스 인스턴스가 해제되기 직전에 호출되며 직접 호출 불가능
- deinit 키워드
- class type에서만 사용
deinit
- deinit이 호출될 때까지 instance 메모리가 해제되지 않기 때문에 deinit안에서 호출된 인스턴스의 모든 속성에 접근 가능
deinit 사용 예시
- Player클래스는 게임에서 플레이어를 안내하고, 각 플레이어는 지갑에 일정 수의 동전을 보관하는 상태이고 이 동전은 coinsInPurse로 정의
- 은행에서 coin의 허용량이 정해져있다면, 각 플레이어가 coin을 사용하고 게임이 끝난 경우 Bank에 coin을 반납하는 프로그램
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)
}
}
* 참고
https://docs.swift.org/swift-book/LanguageGuide/Deinitialization.html