Swift

Swift: 타입 프로퍼티(Type Property)

소재훈 2022. 2. 6. 21:53

각각의 인스턴스가 아닌 타입 자체에 속하는 프로퍼티를 타입 프로퍼티라고 한다. 

인스턴스 생성여부와 상관없이 프로퍼티의 값은 하나이며, 그 타입의 모든 인스턴스가 공통으로 사용하는 값이다. 

 

저장 타입 프로퍼티의 특징은 다음과 같다.

  • 변수/상수로 선언할 수 있다.
  • 반드시 초깃값을 설정해 주어야 한다.
  • 지연 연산된다. 이때 다른 저장 프로퍼티와는 다르게 다중 스레드 환경에서도 한 번만 초기화된다.

연산 타입 프로퍼티는 변수로만 선언할 수 있다.

코드를 통해 타입 프로퍼티와 인스턴스 프로퍼티의 차이를 알아보자.

class AClass {
    //저장타입 프로퍼티
    static var typeProperty: Int = 0
    
    var instanceProperty: Int = 0 {
        didSet {
            Self.typeProperty = instanceProperty + 100
        }
    }
    
    //연산타입 프로퍼티
    static var typeComputedProperty: Int {
        get {
            return typeProperty
        }
        set {
            typeProperty = newValue
        }
    }

}

AClass.typeProperty = 123

let classInstance: AClass = AClass()
classInstance.instanceProperty = 100

print(AClass.typeProperty) //200
print(AClass.typeComputedProperty) //200

위와 같이 타입프로퍼티는 인스턴스를 생성하지 않고, 타입 이름만으로 프로퍼티를 사용할 수 있다.

'Swift' 카테고리의 다른 글

Swift: 인스턴스 메서드(Instance Method)  (0) 2022.02.11
Swift: 키 경로(Key Path)  (0) 2022.02.11
프로퍼티 감시자: Property Observers  (0) 2022.02.06
swift: 연산 프로퍼티  (0) 2022.01.21
swift: 저장 프로퍼티  (0) 2022.01.21