尝试将帖子写入 Firebase 实时数据库时遇到无法识别的选择器发送到实例错误”

Posted

技术标签:

【中文标题】尝试将帖子写入 Firebase 实时数据库时遇到无法识别的选择器发送到实例错误”【英文标题】:Encountering unrecognized selector sent to instance error" when trying to write a post to Firebase Realtime Database 【发布时间】:2020-06-05 20:04:54 【问题描述】:

我目前正在开发一个 uiViewController,它允许用户在 textView 中编写帖子,然后使用名为“sendPost”的按钮功能将其提交到 Firebase 实时数据库。我遇到了这个错误:

“线程 1:异常:”-[Healthify.CreatePostViewController sendPost:]:无法识别的选择器发送到实例 0x7f965682cee0”

我已多次阅读 Firebase 设置说明,一切都正确无误。我知道我在故事板按钮和我的视图控制器之间的 segue 是有效的。

我对这个错误不是很熟悉,所以我想知道这是我的代码错误还是我的实时数据库设置不正确。

@IBAction func sendPost(_ sender: Any, textView: UITextView) 
        let postRef = Database.database().reference().child("posts").childByAutoId()

        let postObject = [
            "text": textView.text!,
            "timestamp": [".sv":"timestamp"]
        ] as [String:Any]

        postRef.setValue(postObject, withCompletionBlock: error, ref in
            if error == nil
                self.dismiss(animated: true, completion: nil)
            //end of if
            else 
                //handle error
            //end of else
        )
    

我关注this tutorial 以供参考。我只从 0:0-2:50 得到它。有人知道潜在的解决方案吗?

【问题讨论】:

添加你传递这个函数的代码作为选择器。 它通常可以帮助我们在您单步调试代码时帮助您,确定是哪一行引发了错误,然后在您的问题中包含该信息。此外,这不会起作用@IBAction func sendPost(_ sender: Any, textView: UITextView),因为它没有这样的动作事件。 【参考方案1】:

事实证明,我的问题是在我的按钮的 IBAction 函数中,我在 textView: UITextView 中调用了它,如评论中所述,无法完成。我删除了它,现在一切正常。

【讨论】:

以上是关于尝试将帖子写入 Firebase 实时数据库时遇到无法识别的选择器发送到实例错误”的主要内容,如果未能解决你的问题,请参考以下文章

Firebase - 跨多个位置的原子写入不起作用

Firebase 实时数据库未连接

Firebase 实时数据库 setValue() 不工作

无法通过 Unity 将数据写入 Firebase 数据库

从 Firebase 中的实时数据库获取数据后,无法写入 Unity 的 TMPro 文本字段

为啥 Firebase 实时数据库的数据在控制台中显示为空?