๋ฐ์ํ closure2 [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 ๋ค์ ๋ฐ์ํ