본문 바로가기

closure4

[iOS/Swift] Non-Escaping Closure 와 Escaping Closure(@escaping) 아래 코드는 흔히 프로젝트를 진행하며 활용하고, 마주치게 되는 비동기 처리 혹은 네트워크 관련 메서드입니다. func fetchGithubProfiles(username: String, completion: @escaping (Result) -> Void) { // ... do { let decoder = JSONDecoder() let profiles = try decoder.decode(GithubProfile.self, from: data) completion(.success(profiles)) } catch let error { completion(.failure(NetworkError.decodingError(error))) } } 위 fetchGithubProfiles 메서드의 completi.. 2023. 7. 6.
[iOS/Swift] 클로저 표현식을 간단하게! 문법 경량화 클로저 관련 포스팅 세 번째 시간입니다! 🤪 클로저 표현식(Closure Expression)의 형태가 다소 난해해서 앞으로 어떻게 사용할지, 막막한 생각에 사로잡히길 마련입니다. 따라서, 이번 포스팅에서는 조금 더 간결하고, 편리하게 클로저를 작성하고 활용할 수 있는 클로저 표현식의 경량문법에 대해 다뤄볼까 합니다. 클로저의 경량문법(lightweight syntax) 클로저 구문의 최적화를 위한 단축된 문법형태 보기만 해도 복잡 다난한 클로저를 단순하고 간결하게 작성하고 활용할 수 있습니다! 클로저의 경량문법을 아래와 같이 3단계로 구분해보았습니다. 타입유추를 통한 매개변수 및 리턴형식 생략 짧은 인자이름 (Shorthand Argument Names) 후행 클로저(Trailing Closures) .. 2023. 1. 27.
[iOS/Swift] 클로저 표현식(Closure Expression)과 1급 객체 조건 지난 포스팅에 이어.. 기존에 작성해 온 함수(전역함수 및 중첩함수)와 클로저 표현식과의 차이점, 1급 객체함수의 특징, 조건을 클로저를 활용한다면 어떤 방식일지 예시 코드와 함께 다뤄보도록 하겠습니다. (관련된 예시 코드는, Swift 공식 가이드북에서 발췌) 클로저 (The Swift Programming Language) 클로저 (Closures) - Swift 다음은 Int 값의 배열을 String 값의 배열로 변환하기 위해 후행 클로저와 map(_:) 메서드를 어떻게 사용하는지 나타냅니다. 배열 [16, 58, 510] 은 새로운 배열 ["OneSix", "FiveEight", "FiveOneZero"] 을 생성하는 bbiguduk.gitbook.io 클로저 표현식(Closure Expressi.. 2023. 1. 26.
[iOS/Swift] 익명 혹은 람다함수는 모두 클로저(Closure)일까? 무수한 함수 포스팅을 헤쳐나와.. 본격적인 프로그래밍을 진행하기에 앞서, 이곳 저곳에서 자주 사용하게 될 클로저(Closure)에 대해 살펴볼까 합니다. 함수보다 아주 조-금 머리아픈 복잡한 내용일 수 있으니 이번 포스팅에서는 클로저의 개념만 살짝 짚고 넘어가겠습니다. 클로저(Closure)에 대하여 익명함수(Unnamed) 외, 이름이 있는 함수(Named) 또한 클로저이다 The Swift Language Guide 에서 소개하는 클로저는 다음과 같습니다. 클로저(Closure) 코드블럭으로 C와 Objective-C의 블럭(blocks)과 다른 언어의 ❶람다(lambdas)와 비슷합니다. 클로저는 어떤 상수나 변수의 참조를 ❷캡쳐(capture)해 저장할 수 있습니다. ??? 아무리 읽어봐도 도통 .. 2023. 1. 25.