(swift) 10. Initialize (초기화)

Reading time ~1 minute

[swift] 10. Initialize (초기화)


초기화란 클래스 구조체 또는 열거형의 인스턴스를 사용하기 위한 준비 과정을 말한다.


사용 방법이다.

init(매개변수: 타입, ...) {
    // 프로퍼티 초기화
    // 인스턴스 생성시 필요한 설정들 해주는 코드 작성
}


(swift) 09. 클래스에서 코드이다.

struct User {
    var nickname: String = "이준혁"
    var age: Int = 0

    init() {
        // 인스턴스가 생성되면 호출
        // 프로퍼티의 초기 값, 필요한 설정 등을 여기서 진행한다.
    }
}

let user = User()




예제

class User {
    var nickname: String
    var age: Int

    // 기본 생성자
    init(nickname: String, age: Int) {
        self.nickname = nickname
        self.age = age
    }

    // 사용자 정의 생성자
    init(age: Int) {
        self.nickname = "김철수"
        self.age = age
    }

    // 인스턴스가 메모리에 해제되기 직전에 호출된다.
    // 종료 전 정리작업을 사용할 경우 사용
    // 클래스에서만 사용 가능
    deinit {
        print("deinit user")
    }
}

var user = User(nickname: "이준혁", age: 22)
print("user.nickname: \(user.nickname)")
print("user.age: \(user.age) \n")

var user2 = User(age: 22)
print("user.nickname: \(user.nickname)")
print("user.age: \(user.age) \n")

var user3 = User(age: 23)
user3 = nil // swift는 인스턴스가 더 이상 필요없다고 판단하면 자동으로 메모리에서 소멸시킨다.

실행 결과

user.nickname: 이준혁
user.age: 22

user.nickname: 김철수
user.age: 22

deinit user

Gitpporter Privacy

Published on January 02, 2023

(PillSoGood) 지원

Published on November 20, 2022