본문 바로가기
iOS/설명

[iOS] UI event를 main thread에서 처리해야하는 이유

by Sky Titan 2022. 10. 2.
728x90

 

 

iOS ) 왜 main.sync를 하면 안될까

안녕하세요 :) Zedd입니다. 오늘은 왜!!! 왜 main.sync를 하면 안되는지 자세히 공부해볼게요. 그렇다고 main.sync를 무조건 하면 안된다는것도 아닙니다. 요 부분은 밑에서 다시 볼게요. main.sync를 하게

zeddios.tistory.com

※우선 이 내용은 위의 레퍼런스 게시글과 내 생각을 정리한 글이기 때문에 정확하지 않을 수 있음을 알림.

UI event를 main thread에서 처리해야하는 이유

 Update Cycle과 관련한 설명 글에서 아래와 같은 그림을 첨부한 적이 있다.

 

 사용자 이벤트 발생 시 어떻게 핸들링 되는지를 알려주는 모습인데, UI Event는 Event queue로 넘어간 뒤, Main run loop에서 UIApplication 객체로 넘겨주고, responder chain을 따라서 해당 event를 핸들링할 수 있는 UIResponder에서 핸들링을 하게 된다.

 

 즉, UI Event를 처리 할 수 있는 것은 UIApplication을 비롯한 responder chain에 있는 UI Object들이고, UIApplication으로 Event를 넘기려면 반드시 Main run loop를 타야 한다.

 이 때 Main run loop는 main thread 위에서 동작하는 run loop임으로 main thread에서 발생한 이벤트만이 Main run loop로 전해져 최종적으로 UIApplication을 비롯한 responder chain에 도달할 수 있기에 main thread에서만 UI Event를 발생시켜야 하는 것으로 생각 된다.

728x90

'iOS > 설명' 카테고리의 다른 글

[iOS] Xcode build configuration debug vs release  (0) 2022.10.11
[iOS] Push 클릭 후 앱 실행 시 life cycle 콜백 호출 순서  (0) 2022.10.02
[iOS] @main의 역할  (0) 2022.10.01
[iOS] accessbilityIdentifier  (0) 2022.09.25
[iOS] NSObject  (0) 2022.09.25

댓글