Las etiquetas de argumento no coinciden con ninguna sobrecarga disponible
Estoy trabajando en una aplicación de mensajería usando JSQMessagesViewController, y quiero asociar otra variable, un número enteroscore
, con cada mensaje (junto con los valores predeterminados comosenderID
, text
ydisplayName
) Así es como intento implementar esto:
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)
}
}
Sin embargo, recibo el siguiente mensaje de error:
Argument labels '(senderId:, displayName:, text:, score:)' do not match any available overloads
Solo puedo suponer que esto se debe a que hay una definición preestablecida de qué datos puede contener el objeto JSQMessage, no estoy seguro de cómo anularlo para poder asociar una variable adicional con mis mensajes.
Nota: Traté de cambiar directamente el código en el marco JSQMessagesViewController (dentro delJSQMessage.h
yJSQMessage.m
archivos) para agregar una variable adicional, pero esto solo causa más errores y me temo que estropearé algo.
¿Alguna solución?
Gracias por adelantado.
EDITAR
¡Creo que descubrí cómo hacerlo! `import UIKit import JSQMessagesViewController
clase CustomMessage: JSQMessage {puntaje var: 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")
}
} `
Sin embargo, ahora recibo un error despuéssuper.init
como tal:must call a designated initializer of the superclass 'JSQMessage'