initialization이 초기화 전에 실행이 되었다면 deinitialization은 메모리에서 해제 되기 전에 실행이 된다.
보통은 View 코드를 다루면 LifeCycle 코드에 맞춰 진행하면서 잘 사용하지 않게 되는 듯 한다.
ex) ViewWillDeisappear 등..
class SomeClass {
deinit() {
//해제시점에 작동
}
}
class Player {
var coinsInPurse: Int
init(coins: Int) {
coinsInPurse = coins
}
func win(coins: Int) {
coinsInPurse += coins
}
deinit {
//2. 해제시점에 실행되 게임을 끝낸뒤 돈을 보여준다.
print("잔액: " + String(coinsInPurse))
}
}
var playerOne: Player? = Player(coins: 3000)
playerOne?.win(coins: 4000)
//1. playerOne에 nil을 할당하면서 기존인스턴스가 해제된다.
playerOne = nil
#학습에 대한 내용으로 틀린 내용이 있을 수 있습니다.
#댓글로 남겨주시면 더 좋은 게시글로 수정하도록 하겠습니다.