Swift 使用来自 Parse 的数据展开可选值时出现致命错误

Fatal Error in Swift unwrapping an Optional value using data from Parse

我正在尝试显示当前登录的用户名,但我收到关于可选值意外为 nil 的致命错误。我搜索了与我的问题相关的其他几个问题(使用 "if let")并尝试了解决方案,但由于某种原因我无法让此代码显示在我的标签中,即使我实际上显示了一个值对于我的调试变量。我的代码如下:

import UIKit
import Parse

class DashboardViewController: UIViewController {

@IBOutlet var welcomeText: UILabel!


override func viewDidLoad() {
    super.viewDidLoad()


}

override func viewWillAppear(animated: Bool) {

    if  let currentUser = PFUser.currentUser()?.username {

        welcomeText.text = "Welcome  \(currentUser)!"

    } else {

        welcomeText.text = "Welcome"
    }


}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()

  }
}

我什至尝试过(正如我发布的那样)将我的代码移动到 viewWillAppear() 函数以查看这是否有所作为,考虑到过去有帮助,但没有成功。任何帮助将不胜感激!

错误:

尝试下面的代码,将解析代码分开。我猜你尝试在 Parse 数据准备好之前分配它。

import UIKit
import Parse

class DashboardViewController: UIViewController {

@IBOutlet var welcomeText: UILabel!


override func viewDidLoad() {
    super.viewDidLoad()
welcomeMessage()

}

override func viewWillAppear(animated: Bool) {

}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()

  }

    func welcomeMessage () {
    if  let currentUser = PFUser.currentUser()?.username {

            welcomeText.text = "Welcome  \(currentUser)!"

        } else {

            welcomeText.text = "Welcome"
        }
    }

}

看到更多的代码还是很有帮助的,你的获取用户的代码在哪里?您是否也尝试在那里设置标签文本?那行得通吗?

你的标签是零。在我看来,Interface Builder 和您的代码之间的标签连接断开了。您需要右键单击并从标签拖动到插座 属性 以再次形成连接。