각각의 인스턴스가 아닌 타입 자체에 속하는 프로퍼티를 타입 프로퍼티라고 한다.
인스턴스 생성여부와 상관없이 프로퍼티의 값은 하나이며, 그 타입의 모든 인스턴스가 공통으로 사용하는 값이다.
저장 타입 프로퍼티의 특징은 다음과 같다.
- 변수/상수로 선언할 수 있다.
- 반드시 초깃값을 설정해 주어야 한다.
- 지연 연산된다. 이때 다른 저장 프로퍼티와는 다르게 다중 스레드 환경에서도 한 번만 초기화된다.
연산 타입 프로퍼티는 변수로만 선언할 수 있다.
코드를 통해 타입 프로퍼티와 인스턴스 프로퍼티의 차이를 알아보자.
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 |