Swift 快速启动应用程序而没有主情节提要崩溃

Swift 快速启动应用程序而没有主情节提要崩溃,swift,Swift,我正在尝试启动一个不使用故事板的应用程序。我删除了序列图像板文件并删除了用于初始化序列图像板的Info.plist行。但是,以下代码在指示的行上失败 import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? var navigationController: UINavigationController?

我正在尝试启动一个不使用故事板的应用程序。我删除了序列图像板文件并删除了用于初始化序列图像板的Info.plist行。但是,以下代码在指示的行上失败

import UIKit

@UIApplicationMain

class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?
    var navigationController: UINavigationController?

    func application(application: UIApplication!, didFinishLaunchingWithOptions launchOptions: NSDictionary!) -> Bool {
        var viewController = GameViewController()
        navigationController = UINavigationController(rootViewController: viewController)

        window = UIWindow(frame: UIScreen.mainScreen().bounds)
        window!.rootViewController = navigationController
        window!.makeKeyWindow()
        window!.makeKeyAndVisible() // fails here

        return true
    }

}
当它崩溃时会出现以下情况:

libswiftCore.dylib`swift_dynamicCastObjCClassUnconditional:
0x10041a86c:  stp    x20, x19, [sp, #-32]!
0x10041a870:  stp    fp, lr, [sp, #16]
0x10041a874:  add    fp, sp, #16
0x10041a878:  mov    x8, x1
0x10041a87c:  mov    x19, x0
0x10041a880:  cbz    x19, 0x10041a8a4          ; swift_dynamicCastObjCClassUnconditional + 56
0x10041a884:  nop    
0x10041a888:  nop    
0x10041a88c:  ldr    x1, #163108               ; "isKindOfClass:"
0x10041a890:  mov    x0, x19
0x10041a894:  mov    x2, x8
0x10041a898:  bl     0x10041cf30               ; symbol stub for: objc_msgSend
0x10041a89c:  tbnz   w0, #0, 0x10041a8a8       ; swift_dynamicCastObjCClassUnconditional + 60
0x10041a8a0:  brk    #1 // Thread 1: EXC_BREAKPOINT (code=1, subcode=0x10041a8a0)
0x10041a8a4:  movz   x19, #0
0x10041a8a8:  mov    x0, x19
0x10041a8ac:  ldp    fp, lr, [sp, #16]
0x10041a8b0:  ldp    x20, x19, [sp], #32
0x10041a8b4:  ret    
这是在使用iphone5s、ios7.1时

同样的事情也适用于Objective-C,IIRC,那么这是一件迅速的事情还是我做错了什么


编辑:当我用通用UIViewController替换SpriteKit视图控制器GameViewController时,这不会失败

当部分应该对您简单明了并立即向您指出故障源时,这不会失败。问题在于GameViewController,而不是AppDelegate。请进行一些调试并返回结果。问题是GameViewController的视图不是SKView。为了修复它,我在视图中添加了一个新的SKView。对于将来的任何人,在设置视图之前,请在SpriteKit ViewDiLoad中使用view=SKViewframe:view.bounds。