【iOS】didFinishLaunchingWithOptions 中调用 self.window 报错问题

使用 Xcode 11+ 创建iOS App 工程后,假如我们在 AppDelegate.m 的 didFinishLaunchingWithOptions 方法中,get 或者 set window 对象,可能会报出如下错误


截屏2020-12-07 下午3.10.24.png

这个是因为,在 iOS 13或者更高版本系统中,默认使用的是 Scene Delegate 来管理 App 的生命周期,所以不会默认生成 window 的 set 和 get 方法,调用就会报错。

如果想切回 AppDelegate 来管理 App 的生命周期,需要
1、删除 Info.plist 文件中的 UIApplicationSceneManifest key
2、在 @implementation AppDelegate 中 添加 @synthesize window = _window;
3、在 AppDelegate.m 中注释掉 UISceneSession 相关的方法(如 configurationForConnectingSceneSession didDiscardSceneSessions)

你可能感兴趣的:(【iOS】didFinishLaunchingWithOptions 中调用 self.window 报错问题)