代码之家  ›  专栏  ›  技术社区  ›  Lukas Bimba

swift消息包-使用未声明的类型“MessageData”[重复]

  •  0
  • Lukas Bimba  · 技术社区  · 6 年前

    我刚刚将代码更新为swift 4.2并修复了所有错误。现在我正尝试使用“MessageKit”将一个Messenger放入我的应用程序。一切都在更新,但我有这些问题…现在它在说 MessagesInputBarDelegate

    “使用未声明的类型'MessagesInPutBarDelegate'”

    “使用未声明的类型'Messageinputbar'”

    也,

    “参数标签'(类型:)'与任何可用的重载都不匹配”

    “无法转换类型的值?”到所需的参数类型“url?”

    使用未声明的类型“messagesinputbardelegate”

    使用未声明的类型“Messageinputbar”

    extension CustomerChatViewController: MessagesInputBarDelegate {
    
    func messageInputBar(_ inputBar: MessageInputBar, didPressSendButtonWith text: String) {
        let message = Message(user: user, content: text)
    
        save(message)
        inputBar.inputTextView.text = ""
    }
    
    }
    

    参数标签'(类型:)'与任何可用的重载都不匹配

    let cameraItem = UIBarButtonItem(type: .system)
    

    无法转换类型为“\u”的值。应为参数类型“url?”

    let imageName = [UUID().uuidString, String(Date().timeIntervalSince1970)].joined()
        storage.child(channelID).child(imageName).putData(data, metadata: metadata) { meta, error in
            completion(meta?.downloadURL())
        }
    
    0 回复  |  直到 6 年前
        1
  •  6
  •   Julien Kode    6 年前

    你安装了吗 消息输入栏 是吗?你可以这样安装

    pod 'MessageInputBar'
    

    自从 消息工具包2.0.0 你必须安装 消息输入栏

        2
  •  1
  •   Di Nerd Apps    5 年前

    加进去对我也有用

    import InputBarAccessoryView
    
    

    然后在viewdidload()中添加:

    override func viewDidLoad() {
            super.viewDidLoad()
            messageInputBar.delegate = self
            maintainPositionOnKeyboardFrameChanged = true
            messageInputBar.inputTextView.tintColor = .yellow
            messageInputBar.sendButton.setTitleColor(.purple, for: .normal)
    
    
            messagesCollectionView.messagesDataSource = self
            messagesCollectionView.messagesLayoutDelegate = self
            messagesCollectionView.messagesDisplayDelegate = self
            messagesCollectionView.messageCellDelegate = self
    
            messageInputBar.leftStackView.alignment = .center
            messageInputBar.setLeftStackViewWidthConstant(to: 50, animated: false)
    
        }
    

    调用委托方法:

    extension ChatVC: MessageInputBarDelegate {
    
        func inputBar(_ inputBar: InputBarAccessoryView, didPressSendButtonWith text: String) {
            guard let user = self.user else{return}
            guard let uid = Auth.auth().currentUser?.uid else{return}
            let ref = Database.database().reference().child("messages").child(uid).child("personal").child(user.uid)
            let values = ["sender": uid, "text": text, "recipient": user.uid]
            ref.updateChildValues(values)
            inputBar.inputTextView.text = ""
        }
    }
    
        3
  •  0
  •   stry-kai    5 年前

    我还在视图控制器类中添加了这个

    import MessageInputBar