샘성의 iOS 개발 일지

상태 변화에 따라 다른 동작을 처리하기 위한 앱델리게이트 메서드들을 설명하시오. 본문

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