首页 文章

如何避免Firebase致命错误:在展开Optional值时意外发现nil?

提问于
浏览
1

我试图从Firebase读取并将标签设置为我得到的值

这就是我的ViewController类的顶部:

import UIKit
import Firebase

class ProfileTabViewController: UIViewController {

//MARK: Properties

@IBOutlet weak var nameLabel: UILabel!
var userName = "userName"

我有一个Firebase参考资料

var currentUserName = Firebase(url: "https://buzzmovieios.firebaseio.com/users/884962b7-9fd8-49db-b172-1ad7cb1414f4/Name")

随机字符串是Firebase返回的uid .

我试图在viewDidAppear()方法中获取用户名:

override func viewDidAppear(animated: Bool) {

    print(currentUserName)
    currentUserName.observeEventType(.Value) { (snap: FDataSnapshot!) in
        let name = snap.value as! String
        self.nameLabel.text = name
    }

}

让名称行正常工作 .

print(name)

这一行:

self.nameLabel.text = name

原因:

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

我试过了

let name = snap.value as? String

它不起作用 .

这就是我的Firebase的样子:

FIREBASE

buzzmovieios
    users
      --884962b7-9fd8-49db-b172-1ad7cb1414f4
               Major: CS
               Name: Shawn
      --8880069d-1944-493d-8246-8119fc4bfc81

等等 .

如何避免这种解缠错误?谢谢!

注意:我正在运行XCode 7.3

1 回答

  • 4

    如果让我们打开像这样的选项,请使用

    if let name = snap.value as? String{   
             self.nameLabel.text = name
      }
    

    并检查您的插座是否连接正确,否则它会崩溃..

相关问题