AppDelegate,DidFinishLaunchingWithOptions,ImplicitlyUnwrappedOptional是什么意思?

时间:2014-11-01 23:14:11

标签: swift appdelegate

应用程序构建成功,调试区域没有错误,但立即停止并将我带到此处;

error message

我不知道该怎么做错误。我只能在AppDelegate.swift中猜测它,在DidFinishLanchingWithOptions的某个地方。

有谁知道如何解决这个错误?

抱歉,不够聪明,不能弄清楚这对你们这个微不足道的错误

更新:

我已尝试过下面用户mstysf的建议,但同样的问题出现了吗?我做错了还是错过了什么?

func application(application: UIApplication!, didFinishLaunchingWithOptions launchOptions: NSDictionary!) -> Bool {

    if let navigationController = self.window?.rootViewController as? UINavigationController {

        let challengesController = navigationController.topViewController as ChallengesViewController

        unarchiveDataSource()

        if let dataSource = challengeDataSource {
            challengesController.challengeDataSource = dataSource
        } else {
            loadDefaultChallenges()
            challengesController.challengeDataSource = challengeDataSource
        }
    }
    return true
}

有谁知道出了什么问题?再次感谢,任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

这意味着navigationControllernil。你应该像这样处理它:

if let navigationController = self.window?.rootViewController as? UINavigationController {
    // do your work here
}

它构建成功,因为编译器信任您navigationController不会nil并且不会检查它。这是隐式展开的可选类型的重点。在运行时,如果它是nil,那么您的应用程序崩溃了。这是隐含的无包装选择权的危险。