최고의 스위프트 소멸자 과정 튜토리얼 2024년, 이 튜토리얼에서는 소멸자 프로세스 원리,를 배울 수 있습니다.
클래스의 인스턴스가 해제되기 전에, 소멸자 즉시 호출된다. 사용 키워드 deinit
, 소멸자를 표시하기 위해 유사한 초기화 기능을 사용하여 init
표시합니다. 소멸자는 클래스 유형에만 적용됩니다.
스위프트는 자동으로 인스턴스가 더 이상 자원을 확보 할 필요가 해제되지 않습니다.
자동 참조 카운팅 (ARC)에 의해 스위프트 메모리 관리 인스턴스를 처리합니다.
일반적으로 수동 인스턴스가 청소 해제 할 필요가 없을 때. 자신의 자원을 사용하는 경우 그러나, 당신은 몇 가지 여분의 청소 작업을 수행해야 할 수 있습니다.
당신은 파일을 열고 일부 데이터를 쓸 수있는 사용자 정의 클래스를 만드는 경우 예를 들어, 파일을 닫습니다 클래스 인스턴스 이전에 출시해야 할 수 있습니다.
클래스의 정의에서, 각각의 클래스는 많아야 하나의 소멸을 가질 수있다. 문구에서 괄호없이, 매개 변수없이 소멸자 :
deinit { // 执行析构过程 }
var counter = 0; // 引用计数器 class BaseClass { init() { counter++; } deinit { counter--; } } var show: BaseClass? = BaseClass() print(counter) show = nil print(counter)
위의 프로그램 실행 출력은 다음과 같습니다
1 0
쇼 = 닐 문이 실행될 때 계산기 마이너스 1을 참조하면, 메모리가 해방된다 나타낸다.
var counter = 0; // 引用计数器 class BaseClass { init() { counter++; } deinit { counter--; } } var show: BaseClass? = BaseClass() print(counter) print(counter)
위의 프로그램 실행 출력은 다음과 같습니다
1 1