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'