728x90
※우선 이 내용은 위의 레퍼런스 게시글과 내 생각을 정리한 글이기 때문에 정확하지 않을 수 있음을 알림.
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 |
댓글