线程1:致命错误。当隐式解包一个Optional值时,意外地发现nil。

问题描述 投票:0回答:1

我试图在注册后呈现一个视图控制器,但我一直得到错误的信息。

线程1:致命错误。当隐式拆包一个Optional值时,意外发现nil。

我使用的是Firebase,但我不知道这是否与此有关。

    Auth.auth().createUser(withEmail: email, password: password, completion: {(user, error) in

        guard error == nil else{
            AlertController.showAlert(self, title: "Error", message: error!.localizedDescription)
            return
        }
        guard let user = user else { return }
        print(user.user.email ?? "Missing Email")
        print(user.user.uid)
        let changeRequest = user.user.createProfileChangeRequest()
        changeRequest.displayName = username
        changeRequest.commitChanges(completion: { (error) in

            guard error == nil else{

                AlertController.showAlert(self, title: "Error", message:  error!.localizedDescription)
                return
            }

            let homePage = HomeView()
            self.present(homePage, animated: true, completion: nil) 
        })
    })

这是我得到错误的地方。

let homePage = HomeView()
self.present(homePage, animated: true, completion: nil)

我也得到了同样的错误 对于视图控制器,我试图呈现 关于用户名这是代码 从该视图控制器。

    override func viewDidLoad() {
        super.viewDidLoad()
        guard let username = Auth.auth().currentUser?.displayName else {return}
        welcome.text = "Hello \(username)"
        welcome.textColor = UIColor.systemGreen

这就是错误发生的地方。

welcome.text = "Hello (用户名)"

swift xcode firebase fatal-error
1个回答
0
投票

错误在于你初始化控制器的方式。

let homePage = HomeView()
self.present(homePage, animated: true, completion: nil)

这不是初始化控制器的正确方式。

if let homePage = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "HomeViewController") {
    self.present(homePage, animated: true, completion: nil)
}

替换 的故事板名称,其中包含控制器和 主视图控制器 与您的控制器的故事板标识符。

© www.soinside.com 2019 - 2024. All rights reserved.