HIT해
[Swift 기초문법 - 12] 객체 생성자, 해제자 본문
728x90
Swift에서 객체 생성자와 해제자는 클래스나 구조체의 인스턴스를 초기화하고 해제할 때 사용된다.
이 개념을 이해하면 객체 지향 프로그래밍에서 메모리 관리를 더 효율적으로 할 수 있다!
객체 생성자 (Initializer)
생성자는 클래스나 구조체의 인스턴스를 초기화하는 역할을 한다.
Swift에서 생성자는 init 키워드를 사용하여 정의된다.
기본 생성자 외에도 매개변수를 받는 생성자, 그리고 편의 생성자(convenience initializer) 등을 정의할 수 있다!
import UIKit
class Person {
var name: String
var age: Int
// 기본 생성자
init(name: String, age: Int) {
self.name = name
self.age = age
}
// 편의 생성자
convenience init() {
self.init(name: "Unknown", age: 0)
}
}
let person1 = Person(name: "Alice", age: 30)
let person2 = Person() // name은 "Unknown", age는 0으로 초기화됨
객체 생성 결과
기본 생성자는 필수 프로퍼티를 모두 초기화해야 하며, 편의 생성자는 다른 생성자를 호출하여 초기화를 간소화할 수 있다!
객체 해제자 (Deinitializer)
해제자는 클래스 인스턴스가 메모리에서 해제될 때 호출된다.
Swift에서는 deinit 키워드를 사용하여 해제자를 정의한다.
해제자는 클래스에만 존재하며, 인스턴스가 더 이상 필요하지 않을 때 리소스를 정리하는 데 사용된다!
class FileHandler {
var fileName: String
init(fileName: String) {
self.fileName = fileName
print("\(fileName) 파일 열기")
}
deinit {
print("\(fileName) 파일 닫기")
}
}
if true {
let handler = FileHandler(fileName: "data.txt")
// handler 인스턴스는 이 블록이 종료되면 메모리에서 해제됨
}
// "data.txt 파일 닫기" 출력됨
Swift에서 생성자와 해제자는 객체의 생명 주기를 관리하는 중요한 도구이다.
생성자는 객체를 초기화하고, 해제자는 객체가 더 이상 필요하지 않을 때 리소스를 정리한다.
이 두 가지를 잘 활용하면 메모리 누수를 방지하고, 더 안정적인 코드를 작성할 수 있다!
'Swift > Swift 기초문법' 카테고리의 다른 글
[Swift 기초문법 - 14] 딕셔너리 (0) | 2024.07.12 |
---|---|
[Swift 기초문법 - 13] 상속 (0) | 2024.07.11 |
[Swift 기초문법 - 11] 매개변수로서 클로저 (0) | 2024.07.11 |
[Swift 기초문법 -10] Closer (0) | 2024.07.11 |
[Swift 기초문법 - 9] 제네릭 (0) | 2024.07.11 |