iOS/면접
상태 변화에 따라 다른 동작을 처리하기 위한 앱델리게이트 메서드들을 설명하시오.
SamusesApple
2023. 5. 18. 10:56
728x90
iOS 13.0 이후
12.0 이전에는 1앱 1씬이었던 개념이 하나의 앱에서 여러개의 씬을 가질 수 있도록 바뀌었다.
이에 따라, AppDelegate가 담당한 UILifecycle (앱의 실행 상태에 따른 UI및 메모리 관리 등) 역할을 새롭게 출시된 SceneDelegate에서 맡게 되었다.
AppDelegate
- func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions:)
- 앱을 메모리에 올리고, 앱을 실행할 준비가 마쳤을 때 호출되는 함수
- func application(_ application: UIApplication, configurationForConnecting: )
- 새로운 씬을 만들 때, 해당 씬에 필요한 UIkit의 객체를 구성하는 함수
- func application(_ application: UIApplication, didDiscardSceneSessions: )
- 사용자가 App Switcher (아이폰 화면 하단에서 위로 끌기하면 뜨는 대기열)을 통해 씬을 닫을때 호출되는 함수
SceneDelegate
- func scene(_ scene: UIScene, willConnectTo: options: )
- AppDelegate의 didFinishLaunchingWithOptions과 비슷한 역할을 하며, 씬이 앱에 추가되었을 때 호출되는 함수
- func sceneDidDisconnect(_ scene: UIScene)
- 씬의 연결이 해제되었을 때 호출되는 함수
- func sceneDidBecomeActive(_ scene: UIScene)
- 씬이 Active 상태로 변환될 때 호출되는 함수 (앱 대기열에 있던 앱이 실행되었을때처럼..)
- func sceneWillResignActive(_ scene: UIScene)
- 사용자와의 상호작용이 종료되고 씬이 background로 가기 전에 호출되는 함수
- func sceneWillEnterForeground(_ scene: UIScene)
- (백그라운드에 있던) 씬이 활성화 상태가 될 때 호출되는 함수 (메모리 우선 순위를 선점하게 됨)
- func sceneDidEnterBackground(_ scene: UIScene)
- 활성화 상태였던 씬이 백그라운드로 들어올 때 호출되는 함수 (메모리 우선 순위에서 밀림)
728x90