장면 위임자와 앱 위임자의 차이점
인 마이 스위프트UI 프로젝트 보기AppDelegate
뿐만 아니라 서류철SceneDelegate
파일.
그들 사이의 차이점은 무엇입니까?
예를 들어 의 방법 사이에SceneDelegate
scene(_:willConnectTo:options:)
그리고 그 안에AppDelegate
application(_:didFinishLaunchingWithOptions:)
두 개의 파일은 앱을 전체적으로 실행하는 데 필요한 작업과 백그라운드에서 실행하는 것을 지원하는 하나의 "인스턴스"에 필요한 작업으로 구분됩니다.이것은 데이터베이스를 한 번 구성하지만 창별로 다른 값 집합을 표시하는 것과 같습니다.
글로벌 버전과 프라이빗 버전으로 생각할 수 있습니다.하나는 공유되고 다른 하나는 개별 소유자로 제한됩니다.어떤 면에서, 그것들은 여러분이 이름으로 기대하는 것과 정확히 같습니다.
멀티 윈도우 지원이 진행 중입니다.
다음에 새로운 Xcode 프로젝트를 만들 때는 AppDelegate가 두 개로 분할된 것을 볼 수 있습니다.AppDelegate.swift 및 SceneDelegate.swift를 선택합니다.이는 iPadOS와 함께 제공되는 새로운 멀티 윈도우 지원의 결과이며, 앱 대표자의 작업을 효과적으로 둘로 나눕니다.
iOS 13부터 앱 대리인은 다음을 수행해야 합니다.
- 앱 기간 동안 필요한 모든 데이터를 설정합니다.
- 사용자와 공유하는 파일과 같이 앱에 중점을 둔 모든 이벤트에 응답합니다.
- 푸시 알림과 같은 외부 서비스에 등록합니다.
- 초기 장면을 구성합니다.
반대로, 장면 대리인은 앱의 사용자 인터페이스 인스턴스 하나를 처리하기 위해 그곳에 있습니다.따라서 사용자가 앱을 보여주는 두 개의 창을 만든 경우 두 개의 장면이 모두 동일한 앱 대리인에 의해 지원됩니다.
이러한 장면은 서로 독립적으로 작동하도록 설계되었습니다.따라서 응용프로그램이 더 이상 백그라운드로 이동하지 않고 개별 장면이 이동합니다. 사용자는 다른 장면을 열어둔 상태에서 한 장면을 백그라운드로 이동할 수 있습니다.
제공: https://www.hackingwithswift.com/articles/193/whats-new-in-ios-13
AppDelegate
애플리케이션 레벨 이벤트(예: 애플리케이션 시작), 애플리케이션 수명 주기 및 설정을 처리합니다.
SceneDelegate
화면에 표시되는 내용(Windows 또는 Scene)을 처리하고 앱이 표시되는 방식을 관리합니다.
scene(_:willConnectTo:options:)
는 UISceneSession 수명 주기에서 호출되는 첫 번째 메서드입니다.이 메서드는 새 UI 창을 만들고 루트 보기 컨트롤러를 설정한 다음 이 창을 표시할 키 창으로 만듭니다.
application(_:didFinishLaunchingWithOptions:)
응용 프로그램이 시작되고 응용 프로그램 설정이 완료된 위치에서 호출됩니다.이전 iOS 13에서는 이 방법을 사용하여 UIWindow 개체를 구성하고 ViewController 인스턴스를 UIWindow 개체에 할당하여 화면에 표시했을 수 있습니다.iOS 13부터는 애플리케이션에 씬(scene)이 있는 경우 AppDelegate가 더 이상 이를 처리하지 않고 씬(scene)Delegate로 이동합니다.
보낸이: https://medium.com/ @kalyan.parise/이해-delay-delay-app-app-7503d48c5445
멀티플랫폼
버려진 카트의 답변 외에도, Xcode 11 이후, 당신은 다음과 같은 새로운 옵션을 가지고 있습니다.Multiplatform
시작 템플릿으로 선택할 수 있습니다.여기에는 다음이 포함된 파일만 표시됩니다.
@main
struct MyMultiplatformApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
알 수 .@main
5의 경우)와 (Swift 5.3의 경우)를 포함합니다.WindowGroup
모든 애플 플랫폼에서 앱의 여러 창을 관리합니다.따라서 SceneDelegate 및 AppDelegate에 대한 걱정은 더 이상 필요하지 않습니다.
예를 들어 이전 앱 대리인처럼 사용해야 할 경우 해당 알림을 구독하거나UIAppDelegateAdapter
여기서 설명한 대로 포장지
언급URL : https://stackoverflow.com/questions/56498099/difference-between-scenedelegate-and-appdelegate
'sourcecode' 카테고리의 다른 글
jQuery에서 processData를 false로 설정하면 AJAX 요청이 중단됨 (0) | 2023.08.07 |
---|---|
Android Room에서 엔티티의 특정 필드를 업데이트합니다. (0) | 2023.08.07 |
JavaScript를 사용하여 세션을 만드는 방법은 무엇입니까? (0) | 2023.08.07 |
Moodle 3.6의 질문 뱅크에서 임의 질문을 추가하는 동안 코딩 오류가 발생했습니다. (0) | 2023.08.07 |
매크로에서 붙여넣은 토큰을 대문자로 바꿀 수 있습니까? (0) | 2023.08.07 |