ํด๋ก์ 3 [Swift] ํด๋ก์ ํด๋ก์ (Closures)์ด๋ค ์์๋ ๋ณ์์ ์ฐธ์กฐ๋ฅผ ์บก์ฒ(๊ฐ์ ์ฐธ์กฐ๋ฅผ ๊ฐ๋๋ค.)ํด ์ ์ฅํ ์ ์๋ ์ฝ๋ ๋ธ๋ญSwift๋ ๊ด๋ จ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์์์ ์ฒ๋ฆฌ ํด๋ก์ ์ ํํ์ ์ญ ํจ์ : ์ด๋ฆ์ด ์๊ณ ์ด๋ค ๊ฐ๋ ์บก์ฒํ์ง ์๋ ํด๋ก์ ์ค์ฒฉ ํจ์ : ์ด๋ฆ์ด ์๊ณ ๊ด๋ จํ ํจ์(ํ์→์์)๋ก ๋ถํฐ ๊ฐ์ ์บก์ฒ ํ ์ ์๋ ํด๋ก์ ํด๋ก์ ํํ : ๊ฒฝ๋ํ ๋ ๋ฌธ๋ฒ์ผ๋ก ์ฐ์ฌ์ง๊ณ ๊ด๋ จ๋ ๋ฌธ๋งฅ(context)์ผ๋ก๋ถํฐ ๊ฐ์ ์บก์ณํ ์ ์๋ ์ด๋ฆ์ด ์๋ ํด๋ก์ ํด๋ก์ ํํ (Closure Expressions)์ธ๋ผ์ธ ํด๋ก์ ๋ฅผ ๋ช ํํ๊ฒ ํํํ๋ ๋ฐฉ๋ฒ์ผ๋ก ๋ฌธ๋ฒ์ ์ด์ ์ด ๋ง์ถฐ์ ธ์์์ฝ๋์ ๋ช ํ์ฑ๊ณผ ์๋๋ฅผ ์์ง ์์ผ๋ฉด์๋ ๋ฌธ๋ฒ์ ์ถ์ฝํด ์ฌ์ฉํ ์ ์๋ ๋ค์ํ ๋ฌธ๋ฒ์ ์ต์ ํ ๋ฐฉ๋ฒ์ ์ ๊ณต ์ ๋ ฌ ๋ฉ์๋(The Sorted Method)Swift ํ์ค ๋ผ์ด๋ธ.. 2024. 3. 18. [Swift] Escaping Closure ์ด์ค์ผ์ดํ ํด๋ก์ (Escaping Closure)escaping ํด๋ก์ ๋ ํด๋ก์ ๊ฐ ํจ์์ ์ธ์๋ก ์ ๋ฌ๋์ ๋, ํจ์์ ์คํ์ด ์ข ๋ฃ๋ ํ ์คํ๋๋ ํด๋ก์ ํ๋ผ๋ฏธํฐ ํ์ ์์ @escaping ์ด๋ผ๋ ํค์๋๋ฅผ ๋ช ์ํด์ผ ํจ์ด์ค์ผ์ดํ ํด๋ก์ ์์๋ self๋ฅผ ๋ช ์์ ์ผ๋ก ์ธ๊ธํด์ผ ํจ์ด์ค์ผ์ดํ ํด๋ก์ ๊ฐ ์ฌ์ฉ๋๋ ์๋ก๋ ๋น๋๊ธฐ๋ก ์คํ๋๋ HTTP Request CompletionHandler์ด ์์var completionHandlers: [() -> Void] = []func someFunctionWithEscapingClosure(completionHandler: @escaping () -> Void) { completionHandlers.append(completionHandler)} Non-Escaping .. 2023. 5. 20. [Swift] ํด๋ก์ (Closure) ํด๋ก์ (Closure) ์ฌ์ฉ์์ ์ฝ๋ ์์์ ์ ๋ฌ๋์ด ์ฌ์ฉํ ์ ์๋ ๋ก์ง์ ๊ฐ์ง ์ค๊ดํธ"{}" ๊ตฌ๋ถ๋ ์ฝ๋์ ๋ธ๋ก ์ด๋ฆ์ด ์๋ ํจ์ ํด๋ก์ ๋ ์ด๋ ํ ์์๋ ๋ณ์์ ์ฐธ์กฐ๋ฅผ ์บก์ฒ(capture)ํด์ ์ ์ฅ ๊ฐ๋ฅ Swift๋ ์ด ์บก์ฒ์ ๊ด๋ จํ ๋ชจ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์์์ ์ฒ๋ฆฌ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฐ์ ์ ์๊ณ , ๋ฐํ ๊ฐ์ด ์กด์ฌํ ์ ์๋ค๋ ์ ์์ ํจ์์ ๋์ผ Swift ํด๋ก์ ๋ ์ต์ ํ๋ฅผ ํตํด ๊น๋ํ๊ณ ๋ช ํํ ์คํ์ผ์ ๊ฐ์ง๊ณ ์์ ๋ฌธ๋งฅ(context)์์ ์ธ์ ํ์ ๊ณผ ๋ฐํ ํ์ ์ ์ถ๋ก ๋จ์ผ ํํ์ ํด๋ก์ ์ ์์์ ๋ฐํ ์ถ์ฝ๋ ์ธ์ ์ด๋ฆ ํ์ ํด๋ก์ ๋ฌธ๋ฒ { (๋งค๊ฐ๋ณ์ ์ด๋ฆ : ๋งค๊ฐ๋ณ์ ํ์ ) -> ๋ฐํํ์ in ํด๋ก์ ํํ์ ์ฝ๋ } ํํ ํด๋ก์ (trailing closure) ํด๋ก์ ๊ฐ ํจ์์ ๋ง์ง๋ง argument๋ผ๋ฉด, .. 2023. 2. 6. ์ด์ 1 ๋ค์ ๋ฐ์ํ