안녕하세요. 도미닉입니다.
AppDelegate 가 모두 익숙하실 것이라고 생각합니다.
AppDelegate.swift 는 싱글뷰 프로젝트를 생성하면 가장 위에 보이는 파일이죠.
그렇다면 이 AppDelegate 에는 어떤 메소드들이 선언되어 있을까요?
application
첫번째로 보이는 메소드는 application 입니다.
그렇다면 application 은 어떤 역할을 하는 메소드일까요?
이름에서도 알 수 있듯이 어플리케이션이 실행될 때 딱 한번 실행되는 메소드입니다.
// Override point for customization after application launch.
주석에도 친절하게 어플리케이션이 시작될 때 원하는 작업을 추가할 수 있다고 적혀있네요.
applicationWillResignActive
두번째 메소드는 applicationWillResignActive 입니다.
긴 주석이 두개나 적혀있네요.
해석해보고 어떤 역할을 하는 메소드인지 알아보겠습니다.
1 | 응용 프로그램이 활성 상태에서 비활성 상태로 이동하려고 할 때 전송됩니다. 이는 특정 유형의 일시적인 중단 (예 : 전화 또는 SMS 메시지 수신) 또는 사용자가 응용 프로그램을 종료하고 백그라운드 상태로 전환하기 시작할 때 발생할 수 있습니다. |
우리의 친절한 구글 번역기가 번역을 잘해줬네요.
앱을 사용하다가 전화가 오는 등의 일시적인 중단이나 홈 버튼을 눌러서 앱을 종료하면 수행되는 메소드라고 합니다.
applicationDidEnterBackground
세번째의 메소드는 applicationDidEnterBackground 입니다.
이번에도 주석을 번역해보겠습니다.
1 | 이 방법을 사용하여 공유 리소스를 해제하고, 사용자 데이터를 저장하고, 타이머를 무효화하고, 응용 프로그램이 나중에 종료 될 경우 응용 프로그램을 현재 상태로 복원 할 수있는 충분한 응용 프로그램 상태 정보를 저장하십시오. |
applicationDidEnterBackground 는 이름에서 알 수 있듯이 백그라운드로 들어가진 다음에 호출됩니다.
applicationWillResignActive 에 이어서 동작되는 메소드라고 할 수 있습니다.
applicationWillEnterForeground
네번째 메소드 applicationWillEnterForeground 입니다.
이번에도 맥락을 확인하기 위해 주석을 번역해봤습니다.
1 | 백그라운드에서 활성 상태로 전환의 일부로 호출됩니다. |
이름을 해석해보면 앱이 Foreground(화면) 에 나오기 시작할 때 실행되는 메소드입니다.
applicationDidBecomeActive
5번째 메소드는 applicationDidBecomeActive 입니다.
이름에서 알 수 있듯이 백그라운드로 갔던 앱이 다시 정면에 나타난 이후 실행되는 메소드입니다.
applicationWillEnterForeground 에 이어서 실행되는 메소드라고 할 수 있겠습니다.
applicationWillTerminate
마지막 메소드 applicationWillTerminate 입니다.
어플리케이션이 종료될 때 실행되는 메소드입니다.
다만 애플에서는 applicationWillTerminate 메소드의 실행을 보장하지는 않습니다.
어플이 종료되는 경우 applicationWillTerminate 메소드가 꼭 실행되지는 않았습니다.
그래서 어플이 종료될 때 꼭 실행해야 할 작업이 있다면 앱이 백그라운드로 가는 메소드인 applicationDidEnterBackground 에서 수행해야 합니다.
정리
AppDelegate 에 있는 메소드들에 대해서 간단하게 살펴봤습니다.
잘못된 정보가 있거나 피드백하고 싶으시다면 댓글 부탁드립니다.
읽어주셔서 감사합니다.