Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- uikit
- swift
- IOS
- Python3
- 카카오톡채팅봇
- JS
- 파이썬웹크롤링
- 유학토플
- 인프런강의
- rxswift
- 인프런
- 노드JS
- nodeJS
- 우리를위한프로그래밍
- 파이썬중급강의
- 웹크롤링
- 토플
- 파이썬중급
- 리프2기
- 파이썬
- 토플공부수기
- 스위프트
- 프로그래머스
- 인프런파이썬
- SwiftUI
- IOS프로그래밍
- 인프런파이썬강의
- 자바스크립트
- 인프런오리지널
- 교환학생토플
Archives
- Today
- Total
목록observe(on:) (1)
먹고 기도하고 코딩하라
RxSwift의 observe(on:)과 DispatchQueue.main.async 언제 써야 할까
Observable 구독하는 클로저에서 이벤트가 발생하면 UI를 업데이트해주는 코드가 있었다. 그런데 observe를 메인 스레드가 아니라 다른 스레드에서 하고 있어서 이벤트를 받아 onNext 하면 메인 스레드가 아닌 데서 UI 조작한다고 앱이 강제종료되는 이슈가 생겼다. .observe(on: MainScheduler.Instance)를 체이닝에 추가해서 메인 스레드에서 관찰하도록 변경해줌으로써 이슈는 해결했다. 그런데 문득 궁금해졌다. 그러니까, onNext에서 할 행동을 DispatchQueue.main.async { } 블록으로 감싸줘도 되는 게 아닌가? 이 둘은 퍼포먼스상으로 유의미한 차이가 있을까? 먼저 .observe(on: MainScheduler.Instance) 메소드부터 살펴보자. ..
앱/Swift
2023. 10. 14. 13:58