투케이2K

153. (swift5/xcode) init , deinit 사용해 클래스 생성자 초기화 및 클래스 메모리 할당 해제 상태 확인 본문

Swift

153. (swift5/xcode) init , deinit 사용해 클래스 생성자 초기화 및 클래스 메모리 할당 해제 상태 확인

투케이2K 2023. 11. 18. 10:01

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : SWIFT5

 

[요약 설명]

---------------------------------------------------------------------------
[init 설명]
---------------------------------------------------------------------------
1. init 이란 Initialization 생성자 의미로 클래스 인스턴스가 메모리에서 할당 될 때 동작되는 함수 입니다
---------------------------------------------------------------------------
2. init 은 클래스 인스턴스 메모리가 할당 될 때 자동으로 호출 됩니다
---------------------------------------------------------------------------



---------------------------------------------------------------------------
[deinit 설명]
---------------------------------------------------------------------------
1. deinit 이란 Deinitialization 소멸자 의미로 클래스 인스턴스가 메모리에서 해제 될 때 동작되는 함수 입니다
---------------------------------------------------------------------------
2. Swift 에서 deinit 은 클래스 타입에서 작성이 가능 합니다
---------------------------------------------------------------------------
3. deinit 은 클래스 인스턴스 메모리가 해제 될 때 자동으로 호출 되며, 소멸자를 직접 호출하는 것은 허용되지 않습니다
---------------------------------------------------------------------------

[소스 코드]

import Foundation
import UIKit

class M_Person {
    
    
    /**
     * // -----------------------------------------------------------------------------------------------------------------------------------------------------------------
     * TODO [클래스 설명]
     * // -----------------------------------------------------------------------------------------------------------------------------------------------------------------
     * 1. 사용자 데이터 관리 모델 클래스
     * // -----------------------------------------------------------------------------------------------------------------------------------------------------------------
     * 2. 호출 방법 : 
     *
     * // [변수 선언 실시]
     * var person : M_Person? = nil
     *
     * // [클래스 생성자 초기화 : 인스턴스 할당]
     * person = M_Person(name: "투케이", age: 30, sex: true)
     *
     * // [클래스 메모리 할당 해제]
     * person = nil
     * // -----------------------------------------------------------------------------------------------------------------------------------------------------------------
     * */





    /**
     * // -----------------------------------------------------------------------------------------------------------------------------------------------------------------
     * //  TODO [빠른 로직 찾기 : 주석 로직 찾기]
     * // -----------------------------------------------------------------------------------------------------------------------------------------------------------------
     * [SEARCH FAST] : [전역 변수 선언]
     * // -----------------------------------------------------------------------------------------------------------------------------------------------------------------
     * [SEARCH FAST] : [클래스 생성자 초기화]
     * // -----------------------------------------------------------------------------------------------------------------------------------------------------------------
     * [SEARCH FAST] : [클래스 메모리 해제]
     * // -----------------------------------------------------------------------------------------------------------------------------------------------------------------
     * */







    // -----------------------------------------------------------------------------------------
    // MARK: - [SEARCH FAST] : [전역 변수 선언]
    // -----------------------------------------------------------------------------------------
    var name = ""
    var age = 0
    var sex = false
    
    
    
    
    
    // -----------------------------------------------------------------------------------------
    // MARK: - [SEARCH FAST] : [클래스 생성자 초기화]
    // -----------------------------------------------------------------------------------------
    init(name: String, age: Int, sex: Bool) {
        self.name = name
        self.age = age
        self.sex = sex
        
        S_Log._D_(description: "[사용자] 클래스 생성 초기화", data: [
            "name :: \(self.name)",
            "age :: \(self.age)",
            "sex :: \(self.sex)"
        ])
    }
    
    
    
    
    
    // -----------------------------------------------------------------------------------------
    // MARK: - [SEARCH FAST] : [클래스 메모리 해제]
    // -----------------------------------------------------------------------------------------
    deinit {
        S_Log._D_(description: "[사용자] 클래스 메모리 해제", data: nil)
    }
    
    
} // [클래스 종료]
 

[결과 출력]


반응형
Comments