다음과 같이 종종 '@'가 붙은 코드들을 볼 수 있다.
class A {
@Published a: String
}
각설하고, 바로 알아보자.
1. 해당 프로퍼티에 접근할 때마다, 수행할 동작을 우리가 원하는 대로 커스텀 할 수 있다.
이렇게만 이야기하면 감이 잡히지 않으니 예시와 함께 보자.
2. 예시
a라는 속성에 어떤 수를 넣더라도 1이라는 숫자가 들어가게 하고 싶을 경우, 다음과 같은 프로퍼티 래퍼를 만들 수 있다.
struct OnlySet1 {
private (set) var a: Int
var wrappedA: Int {
get { return value }
set { a = 1 }
}
init(initialA: Int) {
self.a = 1
}
}
이제 이 프로퍼티 래퍼를 사용하면,
struct B {
@OnlySet1 var b: Int
}
이 b 프로퍼티에는 오직 1만이 들어갈 수 있게 된다.
'🍎 Apple > Swift' 카테고리의 다른 글
dequeueReusableCell과 dequeueConfiguredReusableCell, 뭐가 다를까? (0) | 2023.10.26 |
---|---|
[Swift] defer, 내부 코드를 매우 간단하게 만들고 싶을 때! (0) | 2023.10.24 |
[Swift] Opaque Type: Some을 붙여 타입캐스팅할 필요없이 구체 타입으로 사용하자. (0) | 2023.10.24 |
[Swift] Completion Handler(ft. Escaping Closure) (0) | 2023.10.22 |
[Swift] Trailing Closure란? (1) | 2023.10.22 |