- Swift 5.1๋ถํฐ ์ฌ์ฉ๊ฐ๋ฅ
- getter, setter, computed property ์ฝ๋ ์ค๋ณต์ ์ค์ผ ์ ์์
- ์ฐ์ฐ ํ๋กํผํฐ ๋ก์ง์ ๊ณต์ ํ๋ ๋ฐฉ๋ฒ
- ๊ธฐ๋ณธ ์ฐ์ฐ ํ๋กํผํฐ์ ๊ธฐ๋ฅ์ ๊ฐ๋ณ ํด๋์ค์ ๊ตฌ์กฐ์ฒด์ ๋ถ๋ฆฌํ ์ ์๊ฒ ํ์ฌ ์ฑ ์ฝ๋์์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ๊ฒ ํจ
ํ๋กํผํฐ ๋ํผ ๊ตฌํ
@propertyWrapper
struct Tenfold {
private(set) var num: Int = 0
var wrappedValue: Int {
get { num }
set { num = newValue * 10 }
}
init(wrappedValue value: Int) {
self.wrappedValue = value
}
}
- @propertyWrapper ์ง์์๋ฅผ ์ด์ฉํ์ฌ ์ ์ธ
- ํด๋์ค๋ ๊ตฌ์กฐ์ฒด๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌํ ๊ฐ๋ฅ
- getter์ setter๊ฐ ํฌํจ๋ wrappedValue ํ๋กํผํฐ๋ฅผ ํฌํจํด์ผ ํจ
- ๊ฐ์ ๋ณ๊ฒฝํ๊ณ ์ ํจ์ฑ์ ๊ฒ์ฌ
- initializer์์ ์ธ์๋ฅผ ๋ฐ์ ๋ wrappedValue๋ก ๋ฐ์์ผ ํจ
struct Score {
@Tenfold var kor: Int
@Tenfold var eng: Int
}
์ฌ์ฉ์ ๋ณ์ ์ ์ธ ์์ @๊ธฐํธ + ํ๋กํผํฐ ๋ํผ ์ด๋ฆ์ ์ง์์๋ก ์ฌ์ฉํ์ฌ ๋ถ์ฌ์ค๋ค.
let score = Score(kor: 9, eng: 10)
print(score.kor)
// 90
์ฐธ๊ณ ์ฌ์ดํธ ๋ฐ ๋์
ํต์ฌ๋ง ๊ณจ๋ผ ๋ฐฐ์ฐ๋ SwiftUI ๊ธฐ๋ฐ์ iOS ํ๋ก๊ทธ๋๋ฐ
'iOS ๐ > Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift] ๋์์ฑ ํ๋ก๊ทธ๋๋ฐ(async/await, actor, sendable) (0) | 2023.12.20 |
---|---|
[Swift] ์ค์ํํธ ๊ตฌ์กฐ์ฒด ์์๋ณด๊ธฐ (0) | 2023.01.24 |