问题
I had just updated my code to swift 4.2 and fixed all the errors. Now I am trying to use 'MessageKit' to put a messenger into my app. Everything is updated yet I am having these problems... now it is saying for MessagesInputBarDelegate
"Use of undeclared type 'MessagesInputBarDelegate'"
and
"Use of undeclared type 'MessageInputBar'"
Also,
"Argument Labels '(type:)' do not match any available overloads"
and
"Cannot convert value of type'_?' to expected argument type 'URL?"
Use of undeclared type 'MessagesInputBarDelegate'
Use of undeclared type 'MessageInputBar'
extension CustomerChatViewController: MessagesInputBarDelegate {
func messageInputBar(_ inputBar: MessageInputBar, didPressSendButtonWith text: String) {
let message = Message(user: user, content: text)
save(message)
inputBar.inputTextView.text = ""
}
}
Argument labels '(type:)' do not match any available overloads
let cameraItem = UIBarButtonItem(type: .system)
Cannot convert value of type '_?' to expected argument type 'URL?'
let imageName = [UUID().uuidString, String(Date().timeIntervalSince1970)].joined()
storage.child(channelID).child(imageName).putData(data, metadata: metadata) { meta, error in
completion(meta?.downloadURL())
}
回答1:
Have you install MessageInputBar ? You can install it like that
pod 'MessageInputBar'
Since MessageKit 2.0.0 you have to install MessageInputBar
回答2:
adding worked for me too then
import InputBarAccessoryView
then in viewDidLoad() add this :
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)
}
calling the delegate method :
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:
Well i also added this in the view controller class
import MessageInputBar
来源:https://stackoverflow.com/questions/53378904/swift-messagekit-problems-running-swift-4-2