我正在尝试在 Xcode 中制作一个新的 iOS 应用程序。我制作了一个主 Storyboard,并在 ViewController 上添加了一个标签。当我运行我的应用程序时,第一秒它显示标签,然后黑屏,没有任何错误。
我正在使用 Xcode 11 (Swift 5),此消息出现在输出中:
[SceneConfiguration] Info.plist configuration "Default Configuration" for UIWindowSceneSessionRoleApplication contained UISceneDelegateClassName key, but could not load class with name "gina.SceneDelegate"
我不知道我的错误在哪里。
最佳答案
iOS 13 及更高版本
Only if target is 13 or greater.
SceneDelegate
在 iOS 13 之前不受支持。如果您想使用 SceneDelegate
并且还想支持 iOS 13 之前的 iOS,那么您必须向您的项目添加一些更改。
- 将可用性属性添加到 SceneDelegate.swift 文件中的整个类。
@available(iOS 13.0, *)
class SceneDelegate: UIResponder, UIWindowSceneDelegate {
...
}
- AppDelegate.swift 文件有两个新的
SceneDelegate
方法。还为它们添加可用性属性。
@available(iOS 13.0, *)
func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
...
}
@available(iOS 13.0, *)
func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) {
...
}
- 最后,在 AppDelegate.swift 中添加
UIWindow
对象。
class AppDelegate: UIResponder, UIApplicationDelegate {
//Add this line
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
return true
}
...
}
<小时/>
iOS 12 及更早版本
AppDelegate
需要 UIWindow
属性。 iOS 13 在新项目中使用 SceneDelegate
。指定 UIWindow
对象并删除 SceneDelegate.swift 文件。
如果您已从项目中删除了 SceneDelegate
,则必须从 Info.plist< 中删除Application Scene Manifest 字典/strong>.
关于ios - 当我运行 iOS 应用程序时黑屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58209675/