0

大家好,我正在使用 firebase 创建一个聊天应用程序。

当我进入屏幕创建一个频道时,它在展开可选值时崩溃说发现 nil。如果我回到应用程序,则通道已创建,因此我认为在更改视图控制器时它发现 nil 并且数据库中必须没有任何内容用于消息下的新通道。下面是代码及其崩溃的位置。

var channelRef: FIRDatabaseReference?

private lazy var messageRef: FIRDatabaseReference = self.channelRef!.child("messages")

然后它在这里崩溃......

private func observeMessages() {
    messageRef = channelRef!.child("messages")

这个函数在视图加载时调用

4

1 回答 1

0

而不是强制展开,您应该使用并且if let像这样:

if let channelRef = channelRef {
     messageRef = channelRef.child("messages")
} //maybe add an else and do some logic if value is not there

或者您可以声明var channelRef: FIRDatabaseReference!您是否希望它始终存在并且属于这种类型

于 2017-02-15T16:02:02.067 回答