Open YouHojoon opened 1 year ago
스위프트는 main() 함수가 없어 @main 어노테이션으로 object-c에서 main() 함수가 실행되어 진행되는 과정을 실행합니다.
object-c
1.앱이 실행되면서 맨 처음 main()함수가 실행된다
2.main()함수는 UIApplicationMain()함수를 호출한다
3.UIApplicationMain()함수가 UIApplication객체를 생성한다. 이 객체는 앱의 본체에 해당.
4.UIApplication객체는 info.plist 파일로부터 앱 구성에 필요한 정보들을 로드한다.
5.이벤트 루프 및 초기설정을 진행한다.
6.실행 완료 직전에 앱 델리게이트의 application(_:didFinishLaunchingWithOptions:)메소드가 호출된다.
swift
@main 어노테이션을 찾고 그 클래스를 실행한다.
AppDelegate클래스의 application(:didFinishLaunchingWithOptions:)메소드를 호출한다(앱이 실행될때 처리할 내용이 있으면 여기에 작성)
앱이 종료될때 앱에대한 메모리 제거를 위해서 applicationWillTerminate(:)메소드를 호출(앱이 종료될떄 처리할 내용이 있으면 이곳에 작성)
Swift에서는 @main 어노테이션을 통해 EntryPoint를 지정한다. @main을 사용하면 Top-Level 코드 작성을 대체할 수 있다. 기존에는 @UIApplicationMain를 사용했으나 이는 클래스에서만 사용이 가능하다. 이를 해결하기 위해 @main 속성을 사용하게 되었다.