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

时间:2016-04-12 05:19:36

标签: ios swift firebase xcode7.3 forced-unwrapping

我正在尝试从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
    }

}

let name行正常工作。

print(name)

这一行:

self.nameLabel.text = name

导致:

  

致命错误:在展开Optional值时意外发现nil       (lldb)

我已经尝试了

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 个答案:

答案 0 :(得分:4)

如果要打开像

这样的选项,请使用
  if let name = snap.value as? String{   
         self.nameLabel.text = name
  }

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