상태 변화에 따라 다른 동작을 처리하기 위한 AppDelegate 메서드들을 설명하시오.

seuhong·2024년 1월 25일
0

iOS interview Question

목록 보기
9/11
post-thumbnail

iOS 13 이후 앱의 생명 주기

iOS 13 이후부터는 위처럼 SceneDelegate가 상태변화에 따라 동작을 처리하게 되었음. 대신 AppDelegate는 프로세스 레벨에서의 event 발생을 알려주며, session 생명주기를 application에게 전달하는 역할을 함.

SceneDelgate의 메서드는 아래와 같음.

UISceneDelegate

func scene(UIScene, willConnectTo: UISceneSession, options: UIScene.ConnectionOptions)
// scene이 추가 되었을 때 호출

func sceneDidDisconnect(UIScene)
// scene이 제거 되었을 때 호출

func sceneWillEnterForeground(UIScene)
// scene이 Foreground로 진입할 때 호출

func sceneDidBecomeActive(UIScene)
// scene이 Active 상태가 되어 실행 중일 때 호출

func sceneWillResignActive(UIScene)
// scene이 Background 상태로 진입할 때 호출

func sceneDidEnterBackground(UIScene)
// scene이 Background 상태가 되었을 때 호출

iOS 12 이전 앱의 생명 주기

위를 통해 iOS 13 이전 버전에서는 AppDelegate만을 사용하여 App Lifecycle과 UI관련 Lifecycle 관련 로직들을 다뤘음을 알 수 있음.

AppDelegate는 UIApplication 객체와 함께 앱이 실행되면서 생성되어 계속 존재하는 UIApplicationDelegate 객체이며, 아래의 기능들을 제공하며 그 중에서 상태변화를 처리하는 메소드는 아래와 같음.

UIApplicationDelegate

func application(UIApplication, willFinishLaunchingWithOptions: [UIApplication.LaunchOptionsKey : Any]?) -> Bool
// 앱이 구동되어 필요한 초기 실행 과정이 완료되기 직전에 호출

func application(UIApplication, didFinishLaunchingWithOptions: [UIApplication.LaunchOptionsKey : Any]?) -> B
// 앱이 사용자에게 표시되기 직전에 호출

func application(UIApplication, configurationForConnecting: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration
// 앱이 새로운 scene 또는 window를 제공하려고 할 때 호출

func application(UIApplication, didDiscardSceneSessions: Set<UISceneSession>)
// 유저가 App switcher를 통해 하나 이상의 scene을 닫았을 때 호출

func applicationWillEnterForeground(UIApplication)
// 앱이 Foreground로 진입할 때 호출

func applicationDidBecomeActive(UIApplication)
// 앱이 Active 상태가 되어 실행 중일 때 호출

func applicationWillResignActive(UIApplication)
// 앱이 Background 상태로 진입할 때 호출

func applicationDidEnterBackground(UIApplication)
// 앱이 Background 상태가 되었을 때 호출

func applicationWillTerminate(UIApplication)
// 앱이 종료되었을 때
profile
완씨의 개발기록

0개의 댓글