[iOS] Deinitialization

Deinitialization

소멸자의 작동방식

Swift는 특정 클래스의 인스턴스가 더 이상 필요없을 때 메모리 공간을 확보하기 위해 인스턴스를 자동적으로 메모리에서 해제한다. Swift는 이런 메모리 관리를 ARC를 통해 수행한다. 특정 클래스 인스턴스를 메모리 상에서 해재하고 싶을 때 수동적으로 해당 인스턴스를 정리할 필요가 없다. ARC가 더이상 필요없는 인스턴스에 대해서 자동으로 메모리를 할당/해제 하기 때문

클래스의 소멸자는 하나의 클래스 인스턴스당 최대 하나씩 존재. 소멸자는 별도의 매개변수나 괄호 등을 명시하지 않는다. 스크린샷 2021-02-24 오후 2 38 49

소멸자는 해당 클래스 인스턴스의 메모리 해제가 필요할 때 자동으로 호출. 인스턴스가 메모리에서 해제되기 직전 호출

하지만 해당 소멸자를 직접 호출하는것은 혀용하지 않는다. 상위 클래스의 소멸자는 그들의 서브 클래스에의해서 상속. 또한 상위 클래스 소멸자는 자동적으로 마지막 서브 클래스의 소멸자 구현부에서부터 호출된다. 상위 클래스의 소멸자는 항상 호출된다.

스크린샷 2021-02-24 오후 2 44 29