Swift启动应用程序没有主要故事板崩溃

时间:2014-09-11 14:16:37

标签: swift

我正在尝试在不使用故事板的情况下启动应用程序。我删除了storyboard文件并删除了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    

这是在使用iPhone 5s,iOS 7.1时。

同样的事情在Objective-C,IIRC中有效,所以它是一个快速的事情还是我做错了什么?

编辑:当我用通用GameViewController

替换UIViewController(这是一个SpriteKit视图控制器)时,这不会失败

0 个答案:

没有答案
相关问题