Argument-Labels stimmen nicht mit verfügbaren Überladungen überein

Ich arbeite an einer Messaging-App mit JSQMessagesViewController und möchte eine andere Variable zuordnen, eine Ganzzahlscore, mit jeder Nachricht (zusammen mit den Standardwerten wiesenderID, text, unddisplayName). So versuche ich das umzusetzen:

func addMessage(id: String, text: String, displayName: String, score: Int) {

    // Make sure the character count is between 10 and 140, then add message to message list to display
    if (text.characters.count <= 10 || text.characters.count >= 140) {

    }
    else {
        let message = JSQMessage(senderId: id, displayName: displayName, text: text, score: score)
        messages.append(message)
    }

}

Ich erhalte jedoch die folgende Fehlermeldung:

Argument labels '(senderId:, displayName:, text:, score:)' do not match any available overloads

Ich kann nur annehmen, dass dies daran liegt, dass das JSQMessage-Objekt einige vordefinierte Daten enthält. Ich bin nur unsicher, wie ich sie überschreiben kann, damit ich meinen Nachrichten eine zusätzliche Variable zuordnen kann.

Hinweis: Ich habe versucht, den Code direkt im JSQMessagesViewController-Framework selbst zu ändern (innerhalb desJSQMessage.h undJSQMessage.m files), um eine zusätzliche Variable hinzuzufügen, aber dies verursacht nur mehr Fehler und ich fürchte, ich werde etwas durcheinander bringen.

Lösungen?

Danke im Voraus

BEARBEITE

Ich denke, ich habe herausgefunden, wie es geht! `UIKit importieren importieren JSQMessagesViewController

class CustomMessage: JSQMessage {var score: Int

init(senderId:String, displayName:String, text:String, score:Int) {
    self.score = score
    super.init(senderId:senderId, displayName:displayName, text:text)
}

required init?(coder aDecoder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
}

}

Jedoch bekomme ich jetzt eine Fehlermeldung nachsuper.init so wie:must call a designated initializer of the superclass 'JSQMessage'

Antworten auf die Frage(2)

Ihre Antwort auf die Frage