instantiateViewControllerWithIdentifier崩溃(找到零)

时间:2015-07-17 19:16:55

标签: swift uiviewcontroller storyboard ios-simulator

当我在iPhone上尝试instantiateViewControllerWithIdentifier时,它会崩溃应用程序,尽管这在ios模拟器上工作正常。我使用的代码是:

let questionsGameVC: QuestionsGame = self.storyboard?.instantiateViewControllerWithIdentifier("Questions") as! QuestionsGame

它所说的错误是

  

致命错误:在解包可选值时意外发现nil

有人可以为出错的地方添加任何内容吗?

1 个答案:

答案 0 :(得分:0)

有很多地方可能出错。我会在该行放置一个断点并查看系统的状态,但调试swift仍然不是很好。一种替代方法是拆分该行代码并测试所有部分。像这样:

if let storyboard = self.storyboard {
    if let viewController = storyboard.instantiateViewControllerWithIdentifier("Questions") {
        if let questionGame = viewController as? QuestionGame {
            println("Success!")
        } else {
            println("Question game is the wrong type in the storyboard")
        }
    } else {
        println("There is no view controller with the identifier Questions")
    }
} else {
    println("The storyboard is nil")
}

无论最后打印什么,都应该让您更好地了解问题所在。大多数情况下,我看到拼写错误的标识符或故事板中视图控制器的类尚未从UIViewController更改为自定义类型的情况。