好吧,基本上我正在关注udemy的一个教程,关于如何创建与Backendless和Firebase的聊天。不过,我不想使用Backendless,因为我不想依赖2个提供商 - 所以我只想坚持使用Firebase。因此,我目前正在将我的代码转换为Firebase。Swift中奇怪的可选错误
我有一个视图控制器,显示每个UID独特的页面 - 从我有一个数据库。 UID存储为String
,并在另一个表视图控制器的segue上分配(此工作正常)。之后,我使用UID从用户那里获取我想要的数据。我有一个“开始聊天”按钮,应该创建一个新的聊天。
在本教程中,教师设置了一个从另一个视图控制器触发另一个函数的协议(委托)。这是什么样子:
protocol ChooseUserDelegate {
func createChatroom(withUser: String)
}
var delegate: ChooseUserDelegate!
和我聊天@IBAction
,我有这样的代码:(上面的代码都是在同一个VC)
@IBAction func StartChat(sender: AnyObject) {
let userID = uid
if let theId = userID as? String {
delegate.createChat(String(theId))
}
}
。
在另一个视图控制器,其中,所述createChat()
函数存储,是以下代码:
class AnotherVC UIViewController, UITableViewDelegate, UITableViewDataSource, ChooseUserDelegate{
func createChat(withUser: String) {
print(withUser)
}
}
的问题是,我不能得到调用createChat()
,因为一个可选的错误(展开)上的delegate.createChat(String(theId))
。
编辑:即使有一个“”输入,我得到一个错误。我现在很困惑。我的代表有问题吗?
检查你的委托变量声明。 –
@RohitKP就我而言,这是正确的。我可以用更多的代码更新我的文章。 – askaale
你能格式化你的问题,使其清晰可辨吗? – matt