PropertyWrapper
PropertyWrapper
종류: Develop
정의
로직을 프로퍼티 자체에 연결할 수 있어 보일러플레이트 코드와 코드 재사용성을 높혀줌
Property Wrapper라는 이름에 걸맞게 프로퍼티를 가질 수 있는 타입 앞에 붙힐 수 있음 (class, struct, enum)
- @propertyWrapper를 붙혀 컴파일러에게 “이 타입은 특별하다”고 알려줄 수 있음
- 그 행동을 정의하는 타입을 하나 생성
ex) Uppercased를 해주고싶으니 Uppercase라는 타입을 생성
@propertyWrapper
struct Uppercase {
private var value: String = ""
var wrappedValue: String {
get { self.value }
set { self.value = newValue.uppercased() }
}
init(wrappedValue initialValue: String) {
self.wrappedValue = initialValue
}
}
struct Address {
@Uppercase var town: String
}
let address = Address(town: "earth")
print(address.town) // EARTH