Notice
Recent Posts
Recent Comments
Link
투케이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)
}
} // [클래스 종료]
[결과 출력]
반응형
'Swift' 카테고리의 다른 글
Comments