返回

iOS 项目入口演进之路

IOS

iOS 项目入口的演变之路

随着 iOS 系统的不断更新迭代,iOS 项目的入口也随之经历了一系列演变,从 AppDelegate 到 UISceneDelegate,再到 @main,每一种入口方式都有其独特的特点和适用场景。

AppDelegate

AppDelegate 是 iOS 项目的传统入口,自 iOS 2.0 以来一直沿用至今。它是一个单例类,负责处理应用程序生命周期的各种事件,如应用程序启动、进入后台、进入前台、终止等。AppDelegate 中通常会包含一些常用的方法,如 application:didFinishLaunchingWithOptions:、applicationWillResignActive:、applicationDidEnterBackground: 等。

UISceneDelegate

UISceneDelegate 是 iOS 13 中引入的一种新的应用程序入口方式。它取代了 AppDelegate,成为应用程序生命周期的主要管理者。UISceneDelegate 负责管理应用程序的场景,而场景是应用程序中独立的、可视化的部分。每个场景都有自己的生命周期,并且可以同时存在多个场景。UISceneDelegate 中通常会包含一些新的方法,如 scene:willConnectToSession:、sceneDidDisconnectFromSession:、sceneDidEnterBackground: 等。

@main

@main 是 iOS 13 中引入的一种新的应用程序入口方式,它是一种更加简洁的方式来指定应用程序的入口点。@main 必须放在应用程序的委托类中,并且只能使用一次。@main 方法负责创建应用程序的场景委托,并管理应用程序的生命周期。@main 方法中通常会包含一些代码,如 @UIApplicationMain、@NSApplicationMain 等。

总结

iOS 项目入口的演变是一个循序渐进的过程,从 AppDelegate 到 UISceneDelegate,再到 @main,每一种入口方式都有其独特的特点和适用场景。开发者需要根据自己的实际情况选择合适的入口方式。

参考资料