Xcode 11 向后兼容性:“UIWindowScene 仅在 iOS 13 或更高版本中可用”

2024-05-27

在 Xcode 11 中,我从 Single View App 模板创建了一个新的应用程序项目。我希望这个应用程序能够在 iOS 12 和 iOS 13 中运行。但是当我将部署目标切换到 iOS 12 时,我收到了很多类似这样的错误消息:

UIWindowScene 仅适用于 iOS 13 或更高版本

我应该怎么办?


Xcode 11 中的模板使用场景委托。场景委托和相关类是 iOS 13 中的新增内容;它们在 iOS 12 及之前版本中不存在,并且启动过程也不同。

要使从 Xcode 11 应用模板生成的项目向后兼容,您需要标记整个 SceneDelegate 类以及 AppDelegate 类中引用 UISceneSession 的任何方法,如下所示@available(iOS 13.0, *).

您还需要声明一个windowAppDelegate 类中的属性(如果不这样做,应用程序将运行并启动,但屏幕将是黑色的):

var window : UIWindow?

结果是,当这个应用程序在 iOS 13 中运行时,场景委托具有window,但是当它在 iOS 12 或更早版本中运行时,应用程序委托具有window- 然后你的其他代码可能需要考虑that为了向后兼容。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Xcode 11 向后兼容性:“UIWindowScene 仅在 iOS 13 或更高版本中可用” 的相关文章

随机推荐