ios - Xcode 11 向后兼容性 : "UIWindowScene is only available in iOS 13 or newer"

标签 ios xcode xcode11

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

UIWindowScene is only available in iOS 13 or newer

我应该做什么?

最佳答案

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

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

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

var window : UIWindow?

结果是,当此应用程序在 iOS 13 中运行时,场景委托(delegate)具有 窗口,但当它在 iOS 12 或更早版本中运行时,应用程序委托(delegate)具有 窗口 code> - 然后您的其他代码可能需要考虑那个才能向后兼容。

关于ios - Xcode 11 向后兼容性 : "UIWindowScene is only available in iOS 13 or newer",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58100345/

相关文章:

xcode - 无法将 GROUP 或 BUTTON 拖放到 Watchkit 应用程序的 Storyboard "Hosting Controller"上?

swift - 没有更多上下文 xcode 11,表达式类型不明确

iphone - 如何将 NSArray 拆分为字母部分以便与索引 TableView 一起使用

ios - 应用商店拒绝 iOs 10 上 IPV6 网络支持的应用

objective-c - '+系统字体大小:' not found

swift - UITableview 单元格中的 IOS 聊天应用程序未读消息

ios - 我想使用 JTAppleCalendar 库显示一个简单的日历,但它显示一个空屏幕

ios - 如何从函数内部获取文本字段的文本?

iphone - 模拟点击完成按钮

php - 如何从 php webservice 获取许多 vars 到 iPhone 应用程序?