목록Swift (62)
study record
RxSwift에서 유용하게 사용하는 flatMapLatest (가장 최근에 생성된 Observable의 값만 만들고자 할 때)Combine에서 map + switchLatest를 통해 flatMapLatest처럼 사용하기 알아봅시다! map이 단순하게 값을 변형하는 것이라면,flatMap동작 방식입력 데이터를 새로운 스트림(Publisher/Observable)로 변환한 뒤, 이 스트림을 병합하여 단일 스트림으로 반환합니다.입력당 여러 개의 출력이 가능하며, 모든 스트림이 병렬로 실행됩니다.사용하는 상황입력값으로 새로운 스트림을 생성해야 할 때.병렬적으로 여러 작업을 처리하며, 결과를 단일 스트림으로 병합하고 싶을 때. import RxSwiftlet disposeBag = DisposeBag()let..
* 'Combine: Asynchronous Programming With Swift' 책을 읽고 작성하는 글입니다. 이 책의 목적: Combine framework를 소개하고, Swift로 선언형 리액티브 앱 작성하기 Combine은 앱의 이벤트 처리에 대한 선언형 접근을 제공한다. 다양한 delegate callback과 completion handler closure 사용보다 하나의 chain을 만들 수 있다. 각 체인의 파트는 이전 스텝으로부터 받은 값들의 고유한 액션을 수행하는 Combine operator이다.Combine이 무슨 프레임워크인지?Combine은 Swift에서 비동기 이벤트 처리와 반응형 프로그래밍을 위해 제공되는 프레임워크 Combine 프레임워크는 Swift에서 제공하는 특..
DispatchSemaphoreAn object that controls access to a resource across multiple execution contexts through use of a traditional counting semaphore.전통적인 카운팅 세마포어의 사용을 통해 다양한 실행 컨텍스트들에서의 접근을 통제하는 객체이다.class DispatchSemaphore : DispatchObject 디스패치 세마포어는 전통적인 카운팅 세마포어의 효율적인 구현이다. 디스패치 세마포어는 호출 스레드를 차단해야 할 때만 커널을 호출한다. 호출 세마포어가 차단될 필요가 없으면 커널 호출이 이루어지지 않는다. 세마포어 카운트를 증가시키려면 signal() 메서드를 호출하고, 세마포어 카운트..
Future하나의 값을 만들고 끝나거나 실패하는 publisherfinal class Future where Failure : Error 어떤 작업을 수행하고 비동기적으로 하나의 값을 publish 하고자 할 때 future를 사용한다. 첫번째 value를 보내면 스트림이 바로 끝난다.Future.Promise를 받는 클로저로 future를 initialize한다. 성공 또는 실패를 가리키는 Result와 함께 promise를 호출한다.결과가 error인 경우 publishing은 에러와 함께 종료된다. func generateAsyncRandomNumberFromFuture() -> Future { return Future() { promise in DispatchQueue.main..