Xcode11 新建项目的问题

当我们更新了xcode到11的版本的时候,我们再新建项目就会发现,出现的文件与之前的不同,会多出两个文件SceneDelegate.h和SceneDelegate.m.

SceneDelegate 是ipados用来做多窗口支持的  这时候如果你还像之前的一样,在appdelegate里写self.window的方法的话,运行程序,直接崩溃了,因为新版本的xcode的appdelegate里面已经没有了window这个属性

 在iOS13之前,appdelegate会处理app生命周期和UI生命周期,但是iOS13之后,appdelegate就不再处理UI生命周期了,只负责处理生命周期和新的scene  session生命周期,而UI 的生命周期就有scene delegate处理了,所以我们写的self.window时就要放到scenedelegate里

 适配iOS13包含和以上的设备要在sceneDelegate内写:

 UIWindowScene * windowScene = (UIWindowScene *)scene;

 self.window = [[UIWindow alloc]initWithWindowScene:windowScene];

 self.window.frame = windowScene.coordinateSpace.bounds;

 ViewController * control = [[ViewController alloc]init];

 self.window.rootViewController = control;

 [self.window makeKeyAndVisible];

 同时适配iOS13以下设备以及iOS13以上的设备,需要把相关的sceneDelegate都删掉:

1.删除info文件里关于scenedelegate的配置信息:删除Application Scene Manifest

 2.appdelegate.h文件增加window属性

 3.在APPdelegate.m里删除新加的scene方法 UISceneSession lifecycle 内面的方法

 4.删除scenedelegate的2个文件

你可能感兴趣的:(Xcode11 新建项目的问题)