我正在Catalina Beta 2上运行并使用Xcode 11 Beta2。我已经创建并构建了默认模板SwiftUI项目,并且可以正常加载。然后,我打开了一个使用情节提要在Xcode 10中创建的小项目,然后将设置复制并粘贴到Apple的模板项目中。
应用程序,Info.plist,设置,应用程序委托,场景委托等中的所有内容看起来都是相同的,我已经遍历了很多遍,以查找问题所在。
这是我当前的应用程序代表:
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
return true
}
func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
let config = UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
return config // <<<<< Breakpoint !!!!
}
func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) {
}
}
在Apples模板项目中,此方法有效,但在我的项目中,无效。
在我的断点处停止我可以看到connectingSceneSession
和加载的配置已忽略Info.plist
中的场景细节。而是使用零场景委托和外部显示角色创建默认配置。
真正奇怪的是,如果我执行:
po UISceneConfiguration(name: "Default Configuration", sessionRole: .applicationWindow)
在调试控制台中,它完全按照我的期望从Info.plist
加载场景。
问题的核心似乎在于该应用无法在Info.plist
中看到场景的定义,而是返回了一个新的外部显示场景。甚至在我尝试用苹果示例应用程序中的应用替换了Info.plist
应用后。
有人知道会发生什么吗?
答案 0 :(得分:0)
找到了。
这不是设置,代码或衍生数据。原来,SwiftUI应用程序已在模拟器上。重置模拟器后,一切便开始工作。