일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- RX
- 딥러닝
- swiftUI
- rxswift
- SWIFT
- 독서
- Algorithm
- 알고리즘
- 스위프트UI
- ios
- Deep learning
- iOS SwiftUI
- wwdc
- Xcode
- objc
- 머신러닝
- stanford SwiftUI
- 문자열
- 책
- objective-c
- ReactiveX
- Animation
- 애니메이션
- 책 후기
- leetcode
- 책 추천
- ARC
- 스위프트
- swift5
- string
- Today
- Total
목록closure (3)
THIS IS ELLIE
다 객체간의 소통을 할 수 있다는 공통점을 가진다. 세 패턴 모두 특정 이벤트가 일어나면 원하는 객체에 알려주어 해당되는 처리를 하는 방법을 가지고 있다. 하지만 한 객체는 그 자체로 존재하면서 소통하고 싶을 뿐 다른 객체에 종속되어 동작하는 것은 재사용성과 독립된 기능요소 측면에서 볼 때 바람직하지 않다. - 클로저 함수의 인자로 클로저가 들어가면 함수는 자신의 코드 내에서 언제든 자신의 인자인 클로저를 부를 수 있게 된다. 이런 구조를 활용하면 함수가 자신의 작업을 모두 완료된 후 클로저를 호출하도록 한다면 async에서 작업이 완료된 시점을 인식하고 처리할 수 있게 된다. - 델리게이트 대상 객체가 누군지 알 수 있을때 사용한다. MVC디자인 패턴 구조에서 View가 Controller에게 말을 걸..
스위프트 함수는 모두 클로저다. 함수 내의 유효 범위에서 외부 변수를 참조할 수 있는 함수를 특히 클로저라 칭한다. class Dog { var whatADogSays = "woof" func bark() { print(whatADogSays) } } bark 함수는 이 함수 바깥에 선언된 whatADogSays 변수를 참조할 수 있었다. 함수 몸체의 유효 범위기 때문이다. func doThis(f: () -> Void) { f() } let d = Dog() doThis(f: d.bark) 우리는 bark 함수를 직접 호출하지 않았다. Dog 인스턴스를 만들고 doThis함수의 값으로 bark함수를 전달했다. doThis함수에서 bark 함수를 호출했다. 이제 whatADogSays 변수는 Dog의 인..
배열을 변환해야 할 때 맵을 많이 사용합니다. map은 매개변수로 전달된 함수를 실행하고 실행된 배열을 반환해주는 함수입니다. 배열 , 딕셔너리, 세트 등에서 map을 사용할 수 있습니다. 공식 문서를 살펴보면func map(_ transform: (Element) throws -> T) rethrows -> [T]여기서 transform 은 매핑클로저로 시퀀스의 요소를 매개변수로 받아들이고 동일하거나 다른 유형의 변환된 값을 반환합니다. let cast = ["Vivien", "Marlon", "Kim", "Karl"] let lowercaseNames = cast.map { $0.lowercased() } 예제를 살펴보면 cast는 [String]으로 이루어져 있습니다. cast.map { $0.lo..