Je venais de mettre à jour mon code pour swift 4.2 et de corriger toutes les erreurs. J'essaye maintenant d'utiliser «MessageKit» pour mettre un messager dans mon application. Tout est mis à jour mais j'ai ces problèmes ... maintenant, il est dit pour MessagesInputBarDelegate

"Utilisation du type non déclaré 'MessagesInputBarDelegate'"

Et

"Utilisation du type non déclaré 'MessageInputBar'"

Aussi,

"Les étiquettes d'argument '(type :)' ne correspondent à aucune surcharge disponible"

Et

"Impossible de convertir la valeur de type'_? ' au type d'argument attendu 'URL? "

Utilisation du type non déclaré "MessagesInputBarDelegate"

Utilisation du type non déclaré "MessageInputBar"

extension CustomerChatViewController: MessagesInputBarDelegate {

func messageInputBar(_ inputBar: MessageInputBar, didPressSendButtonWith text: String) {
    let message = Message(user: user, content: text)

    save(message)
    inputBar.inputTextView.text = ""
}

}

Les libellés d'argument "(type :)" ne correspondent à aucune surcharge disponible

let cameraItem = UIBarButtonItem(type: .system)

Impossible de convertir la valeur de type "_?" au type d'argument attendu "URL?"

let imageName = [UUID().uuidString, String(Date().timeIntervalSince1970)].joined()
    storage.child(channelID).child(imageName).putData(data, metadata: metadata) { meta, error in
        completion(meta?.downloadURL())
    }
5
Lukas Bimba 19 nov. 2018 à 19:27

3 réponses

Meilleure réponse

Avez-vous installé MessageInputBar ? Vous pouvez l'installer comme ça

pod 'MessageInputBar'

Depuis MessageKit 2.0.0 , vous devez installer MessageInputBar

7
Julien Kode 19 nov. 2018 à 16:29

L'ajout a fonctionné pour moi aussi alors

import InputBarAccessoryView

Puis dans viewDidLoad () ajoutez ceci:

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)

    }

Appelant la méthode déléguée:

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 = ""
    }
}
2
Vybz Kartel 3 sept. 2019 à 00:07

Eh bien, j'ai également ajouté cela dans la classe de contrôleur de vue

import MessageInputBar

0
stry-kai 3 mai 2019 à 10:42