RunLoop.main과 DispatchQueue.main
비동기 프로그래밍에서 UI 업데이트를 진행해야 할 때는 반드시 메인 스레드에서 동작하도록 설정해줘야 한다. Combine의 경우 receive(on:) 메서드에 스케줄러를 설정해 주면 된다. 이때 RunLoop.main과 DispatchQueue.main을 통해 메인 스레드 지정이 가능한데, 둘의 차이점에 대해 궁금해져서 구글링을 해보았다. Combine의 스케줄러 Combine의 스케줄러는 언제, 어떻게 클로저를 실행시킬 지 정의한다. 스케줄러들은 Scheduler 프로토콜에 순응하며, RunLoop.main과 DispatchQueue.main도 이 프로토콜을 채택하고 있다. URLSession.shared .dataTaskPublisher(for: URL(string: "https://picsum.p..
iOS/Combine
2023. 12. 13. 00:26