iOS 14 中如何对一个SwiftUI App 增加 AppDelegate?

2,254 阅读1分钟

iOS 14中,SwiftUI apps遵循App protocol,没有遵循UIApplicationDelegate,但是一些场景需要用到旧的Appdelegate中的生命周期函数,比如push注册,内存警告处理等。

1.首先,创建一个类遵循UIApplicationDelegate

class AppDelegate: NSObject, UIApplicationDelegate {
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
        //add code when didFinishLaunchingWithOptions
        return true
    }
}

这里以didFinishLaunchingWithOptions为例,可以增加任何UIApplicationDelegate包含的函数。

2.使用UIApplicationDelegateAdaptor属性修饰器,指定你创建的Appdelegate

@main
struct NewIn14App: App {
    @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate

    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}

最后打个广告,欢迎加入移动端知识星球,每日学习移动端新特性,讨论技术问题。领券免费加入哦~