Tag: 强制解包

如何避免Firebase致命错误:意外地发现零,而解包一个可选值?

我正在尝试从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") 随机string是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 […]

为什么斯威夫特2有利于强迫打开可选项?

我不再看到Xcode抱怨某些事情需要选项(“?”)。 现在它总是被迫解开(砰!!“)。 当我们现在强制解包时,是否有任何理由再使用可选项?

Swift Optionals – 不同的展开方式

我会正确地做到这一点: 有什么区别: var test: String? test = "this is an optional string" if test != nil { println("\(test!) IS NOT nil") } else { println("test is nil") } 和 if let test = test { println("\(test) IS NOT nil") } else { println("test is nil") } 两个输出结果都在操场上。 我知道隐式解包不被认为是安全的(在大多数情况下),但是,在这里,我正在检查值是零之前解包? 这两种方法是否有效?是否有不同的情况,哪一种被认为是更好的select?