Swift MessageKit问题-运行Swift 4.2



我刚刚将代码更新为swift 4.2并修复了所有错误。现在我正在尝试使用"MessageKit"将信使放入我的应用程序。一切都更新了,但我遇到了这些问题。。。现在有人说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)

无法转换类型为"_?"的值到预期的参数类型"URL?">

let imageName = [UUID().uuidString, String(Date().timeIntervalSince1970)].joined()
storage.child(channelID).child(imageName).putData(data, metadata: metadata) { meta, error in
completion(meta?.downloadURL())
}

是否安装了MessageInputBar?你可以像一样安装它

pod 'MessageInputBar'

由于MessageKit 2.0.0,您必须安装MessageInputBar

添加对我也有效,然后

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 = ""
}
}

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

import MessageInputBar

最新更新