iOS ๐ŸŽ/Swift

๋™๊ธฐ & ๋น„๋™๊ธฐ synchronous๋Š” ์ž‘์—…์„ ๋™๊ธฐ์ ์œผ๋กœ ์‹คํ–‰. ์‹คํ–‰ ์ค‘์ธ ์ž‘์—…์ด ๋๋‚  ๋•Œ ๊นŒ์ง€ ๋‹ค๋ฅธ ์ž‘์—…์„ ๊ธฐ๋‹ค๋ฆผ asynchronous๋Š” ๋น„๋™๊ธฐ๋กœ ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ์ž‘์—…์ด ์žˆ์–ด๋„ ๋‹ค๋ฅธ ์ž‘์—…์„ ์‹คํ–‰ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ์ž‘์—…์„ ๋น„๋™๊ธฐ๋กœ ์ฒ˜๋ฆฌํ•ด์„œ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ์—์„œ ํ•„์š”๋กœ ํ•˜๋Š” ์ž‘์—…์ด ๋ฉˆ์ถ”์ง€ ์•Š๊ฒŒ ํ•œ๋‹ค. MainActor UI ๊ด€๋ จ ์ž‘์—…์€ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ์—์„œ ์‹คํ–‰๋˜์–ด์•ผ ํ•˜๋Š”๋ฐ, MainActor๋Š” ์ด๋ฅผ ์‰ฝ๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค. UI ์—…๋ฐ์ดํŠธ์™€ ๊ด€๋ จ๋œ ์ž‘์—…์„ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ์—์„œ ์‹คํ–‰ํ•˜๋„๋ก ๋ณด์žฅํ•œ๋‹ค. ๋น„๋™๊ธฐ ์ž‘์—…์—์„œ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ๋กœ์˜ ์ ‘๊ทผ์„ ์•ˆ์ „ํ•˜๊ฒŒ ๊ด€๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์Šค๋ ˆ๋“œ ์•ˆ์ •์ ์ด๋ฉฐ DispatchQueue.main.async์™€ ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ํ•„์š”๊ฐ€ ์—†์–ด ๊ฐ„๊ฒฐํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. struct Def..
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 ์ง€์‹œ์ž๋ฅผ ์ด์šฉํ•˜์—ฌ ์„ ์–ธ ํด๋ž˜์Šค๋‚˜ ๊ตฌ์กฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„ ๊ฐ€๋Šฅ..
์„ ์–ธ struct ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ตฌ์กฐ์ฒด๋ฅผ ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค. ํด๋ž˜์Šค๋ฅผ ์„ ์–ธํ•  ๋•Œ class ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒƒ๊ณผ ๋™์ผํ•œ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. struct Animal { var name: String var location: Float } ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ์™€ ๋™์ผํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค. let dog = Animal(name: "Dog", location: 24.566) ํ”„๋กœํ† ์ฝœ ์ฑ„ํƒ ํด๋ž˜์Šค์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํ”„๋กœํ† ์ฝœ์„ ์ฑ„ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. struct MyApp: App { var body: some Scene { WindowGroup { ContentView() } } } SwiftUI์—์„œ ์•ฑ์ด ์‹คํ–‰๋  ๋•Œ ์ฒ˜์Œ ์‹คํ–‰๋˜๋Š” @main ์ด ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ์‚ดํŽด ๋ณด๋ฉด ํ”„๋กœ์ ํŠธ ์ด๋ฆ„์„ ๊ฐ€์ง„ ๊ตฌ์กฐ์ฒด๊ฐ€ ํ•˜๋‚˜..
fram
'iOS ๐ŸŽ/Swift' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก