iOS/iOS

Main Thread

황민우 2022. 3. 29. 21:11

이번 포스트에서는 "UIKit 클래스들을 다룰 때 꼭 처리해야 하는 애플리케이션 스레드가 Main Thread인 이유"에 대해 알아보겠습니다.


Main Thread의 생성

- Cocoa Touch 애플리케이션은 UIApplication의 인스턴스가 main thread에 attach 됩니다.
- main thread는 UIApplication으로부터 만들어지고, UIApplication은 앱이 처음 시작될 때 인스턴스화 되는 앱의 첫 시작 부분이 됩니다.

 

Main Thread의 역할과 기능

- UIApplication은 애플리케이션은 run loop를 포함한 main event loop을 세팅하고 이벤트를 처리합니다.
- 애플리케이션의 main event loop는 touch, gesture같은 모든 UI 이벤트를 받습니다. 

 

UIEvent의 동작원리

- Application UIEvent는

[ UIApplication->UIWindow->UIViewController->UIView->subviews(UIButton,etc.) ]와 같이 chain으로 연결되어, Response Chain에 따라 UIResponder로 전달됩니다.
- UIResponder는 버튼 press, tap, 확대와 축소, swipe, 등,,의 UI 변경으로 인식되는 이벤트를 다룹니다.

- 따라서, 위와 같은 이벤트들이 main thread에서 발생하므로 응답자가 포함된 UIKit 프레임워크는 main thread에서 작동해야 합니다.

 


내용 출처

https://github.com/iOS-SOPT-iNNovation/iOS_Traning/issues/16

 

<3주차> UIKit 클래스들을 다룰 때 꼭 처리해야하는 애플리케이션 쓰레드 이름은 무엇인가? · Issue

 

github.com

https://zeddios.tistory.com/519

 

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

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

zeddios.tistory.com