The Main Run Loop

Main Run Loop는 사용자와 관련된 프로세스들을 처리한다.

UIApplication 객체는 앱이 실행(lunch)되는 시점에 메인 run loop를 생성한 뒤

run loop로 이벤트를 처리한다.

Main run loop는 앱의 메인 스레드에서 동작한다.

Main run loop는 사용자 관련 이벤트들을 받은 순서대로 처리한다.

앱에서의 main run loop와 사용자의 이벤트 인식 구조

mainrunloop

    1. 사용자가 디바이스에서 특정 액션을 취한다
    1. 그 액션에 해당하는 이벤트가 시스템에 의해 생성되어 UIKit에서 생성한 port를 통해 앱에 전달
    1. 이벤트들은 앱 내부적으로 큐에 저장, 차례대로 해당 동작이 실행
    1. UIApplication 객체가 가장 먼저 이 이벤트를 받아서 어떤 동작이 취해질지 결정
    1. 터치 이벤트의 경우 main window 객체가 인식, window 객체가 다시 터치가 발생한 view로 이벤트를 전달
  • 다른 이벤트들도 다양한 app 객체들에 따라 조금씩 다르게 작동한다.