Xcode 真机调试黑屏的问题
Xcode 真机调试黑屏的问题
使用 Xcode 11.2.1 新建项目默认为将编译运行目标设置到最新的 iOS 13。除了 AppDelegate 中新引入的 Scene 场景会有些兼容性的警告提示外,还有个奇怪的问题是应用编译到真机上调试时,Launch Screen 之后便是黑屏,没有按预期展示 main.storyboard 的内容。
而 Simulator 上是没有黑屏问题的。
注意到此刻控制台有如下提示:
The app delegate must implement the window property if it wants to use a main storyboard file
那么问题就很明显了,生成的模板代码中 AppDelegate
缺少 window
属性的声明。
解决办法就是打开 AppDelegate.h
补上如下代码:
@property (strong, nonatomic) UIWindow *window;
再次编译后运动就正常了。
super 方法的缺失
常见导致黑屏的还有个原因是复写父类方法时没有正确调用 super。
比如常见的做法是在 loadView
中进行视图的初始化,但这个方法是需要先调用父类的该方法的,不然会渲染不正确导致黑屏。
- (void)loadView {
[super loadView];
// ...
}