Main Thread
이번 포스트에서는 "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