swift

swift - Initializer and Deinitializer #6 (Deintializer)

행복하게사는게꿈 2021. 1. 12. 16:26

// 소멸자
// 인스턴스가 메모리에서 제거되기 전에 부가적인 정리작업을 구현하기 위해 사용
// 리소스 정리 코드를 작성
// class 전용 코드
// deinit은 하나만 구현가능
// 자동으로 메모리에서 없어질때 호출된다.

class Size {
   var width = 0.0
   var height = 0.0
}

class Position {
   var x = 0.0
   var y = 0.0
}

class Rect {
   var origin = Position()
   var size = Size()
    
    deinit {
        print("deinit \(self)")
    }
}

var r: Rect? = Rect()

// 메모리에 있던 rect 인스턴스 정보가 제거된다.
r = nil

// 파일연결이나 네트워크 연결처럼 자동으로 제거되지 않는 부분에서 구현한다.