Nis*_*Roy 2 ios firebase swift forced-unwrapping xcode7.3
我正在尝试从 Firebase 读取并将标签设置为我得到的值
这是我的 ViewController 类顶部的样子:
import UIKit
import Firebase
class ProfileTabViewController: UIViewController {
//MARK: Properties
@IBOutlet weak var nameLabel: UILabel!
var userName = "userName"
Run Code Online (Sandbox Code Playgroud)
我有一个 Firebase 参考
var currentUserName = Firebase(url: "https://buzzmovieios.firebaseio.com/users/884962b7-9fd8-49db-b172-1ad7cb1414f4/Name")
Run Code Online (Sandbox Code Playgroud)
随机字符串是 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
}
}
Run Code Online (Sandbox Code Playgroud)
let name 行工作正常。
print(name)
Run Code Online (Sandbox Code Playgroud)
这一行:
self.nameLabel.text = name
Run Code Online (Sandbox Code Playgroud)
原因:
致命错误:在展开可选值 (lldb) 时意外发现 nil
我试过了
let name = snap.value as? String
Run Code Online (Sandbox Code Playgroud)
它不起作用。
这是我的 Firebase 的样子:
buzzmovieios
users
--884962b7-9fd8-49db-b172-1ad7cb1414f4
Major: CS
Name: Shawn
--8880069d-1944-493d-8246-8119fc4bfc81
Run Code Online (Sandbox Code Playgroud)
等等。
如何避免这种解包错误?谢谢!
注意:我正在运行 XCode 7.3
请使用 if let 来解开可选项,例如
if let name = snap.value as? String{
self.nameLabel.text = name
}
Run Code Online (Sandbox Code Playgroud)
并检查您的插座是否正确连接,否则它会崩溃..
| 归档时间: |
|
| 查看次数: |
3363 次 |
| 最近记录: |