μΈ μ€ μμ½
- main thread’s run loop
- μ΄ κ³³μ μ€μΉλμ΄ μλ input source λ₯Ό ν΅ν΄ μ¬μ©μμ μ μμ€ μ΄λ²€νΈκ° λ€μ΄μ¨λ€.
- μ΄ κ³³μμ application μ μ΄λ²€νΈ νμμ λ°μμ¨ μ΄λ²€νΈλ₯Ό μ²λ¦¬νλ€.
run loop λ?
- run loop λ λ κ°μ§ μμ
μ νλ event-processing 루νμ.
- μμ
μ μ€μΌμ€λ§νλ€.
- ν΄λΉ run loop μ μ€μΉλμ΄ μλ input source λ€λ‘λΆν° λμ€λ μ΄λ²€νΈλ€μ μ‘°μ νλ€.
- λͺ¨λ μ°λ λλ κ°μμ run loopμ μ κ·Όν μ μλ€.
main event loop
- main event loop λ λ©μΈ μ°λ λλ₯Ό μν run loop μ΄κ³ , application object μ μν΄ μλμ μΌλ‘ λμνλ€.
- μ΄ λ£¨νμμ application μ λ€μ΄μ€λ μ΄λ²€νΈλ€μ μ§μμ μΌλ‘ [νΈλ€λ§ λ΄λΉ μ€λΈμ νΈ]λ€μκ² ν λΉνλ€.
- νΈλ€λ§μ κ²°κ³Όλ‘, μ±μ μνλ μΈνμ΄ λ³κ²½λλ€.
main event loop μ νΉμ§
- μ΄ λ£¨νμ μ€μΉλμ΄ μλ primary input source μμ μ¬μ©μμ λμμ μν΄ μμ±λ μ΄λ²€νΈλ₯Ό OSλ₯Ό ν΅ν΄ λ°λλ€λ κ²μ΄λ€.
- μλ₯Ό λ€μ΄ [λ·°λ₯Ό ννκΈ°], [ν€λ³΄λλ₯Ό μ΄μ©νμ¬ ν
μ€νΈλ₯Ό μ
λ ₯νκΈ°] λ±μ΄ μλ€.
λκ° main event loop λ₯Ό μ€μ νλκ°
- UIApplicationMain(::::) μμ set up νλ€. → UIApplicationMain(::::)
- Application μ μ μμ€ μ¬μ©μ μ΄λ²€νΈλ₯Ό μ λ¬νλ μ±
μμ κ°μ§ κΈ°μ μ μμ€ν
μ»΄ν¬λνΈλ€κ³Ό μ°κ²°μ μμ±νλ€.
Application Object κ° μ΄λ²€νΈλ₯Ό λ°μμμ μ λ¬νλ€.
- μ±μ UI μΌλ¨ νλ©΄μ λμ€κ³ λμλΆν°λ application μ μΈλΆ μ΄λ²€νΈμ μν΄ λμνκ²λλ€.
- application μ λ©μΈ μ°λ λμ λ°λ£¨νμ μ€μΉλμ΄μλ input source λ₯Ό ν΅ν΄ μ μμ€ μ¬μ©μ μ΄λ²€νΈλ₯Ό λ°λλ€.
- application μ΄ κ°κ°μ μ΄λ²€νΈλ₯Ό λ°λ‘ μ²λ¦¬ν΄μΌνκΈ° λλ¬Έμ, λμ°©ν μμλλ‘ μ΄ μ μμ€ μ΄λ²€νΈλ€μ FIFO event queue μ λ€μ΄κ°λ€.
- application object λ μ΄λ²€νΈ νμμ κ°μ₯ μμ μ΄λ²€νΈλ₯Ό κ°μ Έμμ event object (UIEvent) λ‘ λ³ννλ€.
- κ·Έλ¦¬κ³ μ²λ¦¬λ₯Ό μν΄ application λ΄λΆμ λ€λ₯Έ object λ€μκ² μ λ¬νλ€.(dispatch)
- μ΄λ²€νΈλ₯Ό μ λ¬νλ νΈμΆμ΄ λ°νλλ©΄, application μ νμμ λ€μ object λ₯Ό κ°μ Έμ μ λ¬νλ€.
- μ΄ λμμ μ±μ΄ μ’
λ£λ λ κΉμ§ κ³μλλ€.
μ€λλ λλ μ±μ₯νλ€!!π₯
π€ [Back to the Basics] π»
μ£Όλμ΄ iOS κ°λ°μ μ°μ§±μ κΈ°μ λΈλ‘κ·Έμ
λλ€.
[μ°Έκ³ μλ£ ππ»βοΈ]
Main event loop
Apple Developer Documentation