메모리 영역을 공부하던 중 swift는 자동으로 메모리 관리를 한다고 하는데, 도대체 어떻게 자동으로 관리하지?
스스로에게 의문이 생겨서 학습하는 시간을 가져봤다.
인스턴스가 불필요 시 메모리 자동 해제한다.참조 타입)만 관리한다.
스택 메모리에 자동 할당한다.+1 증가 → 참조 횟수가 0이 되면 사용되지 않는 메모리로 판단하여 자동 해제충돌 발생class Person {
let name: String
init(name: String) {
self.name = name
print("\(name) 초기화 진행")
}
deinit {
print("\(name) 메모리 소멸직전 deinit 호출(메모리 해제)")
}
}
var yoonds1: Person?
var yoonds2: Person?
var yoonds3: Person?
아직까지는 Person 인스턴스를 비참조yoonds1 = Person(name: "yoonds") // yoonds는 초기화 진행
yoonds3 = nil // yoonds 메모리 소멸직전 deinit 호출(메모리 해제)
+1 증가가됨