更新xcode11后,新建工程设置rootViewController会报错
Terminating app due to uncaught exception ‘NSInvalidArgumentException’, reason: ‘-[AppDelegate setWindow:]: unrecognized selector sent to instance 0x6000038d03f0’
这是因为Xcode自动新增了一个SceneDelegate文件。iOS13之前,Appdelegate的职责是处理App生命周期和UI生命周期; iOS13之后,Appdelegate的职责是处理 App 生命周期和新的 Scene Session 生命周期(UI的生命周期,交给新增的Scene Delegate处理)。
新的 Scene Session,主要是为了处理多窗口任务,对于不需要适配iPad的app来说,就比较希望恢复成老版的配置模式。可以这样操作:

删除info.plist文件里Application Scene Manifest配置项

在appdelegate里新增window属性

配置app的入口
这样就不用适配UISceneSession lifecycle带来的改变了!
网友评论