Os rótulos de argumento não correspondem a nenhuma sobrecarga disponível
Estou trabalhando em um aplicativo de mensagens usando JSQMessagesViewController e quero associar outra variável, um Integerscore
, com cada mensagem (junto com os padrões, comosenderID
, text
edisplayName
) É assim que eu tento implementar isso:
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)
}
}
No entanto, estou recebendo a seguinte mensagem de erro:
Argument labels '(senderId:, displayName:, text:, score:)' do not match any available overloads
Só posso supor que isso ocorre porque há alguma definição predefinida sobre quais dados o objeto JSQMessage pode conter; não tenho certeza de como substituí-lo para poder associar uma variável adicional às minhas mensagens.
Nota: Tentei alterar diretamente o código na própria estrutura JSQMessagesViewController (dentro do diretórioJSQMessage.h
eJSQMessage.m
arquivos) para adicionar uma variável extra, mas isso apenas causa mais erros e tenho medo de estragar alguma coisa.
Alguma solução?
Desde já, obrigado.
EDITAR
Eu acho que descobri como fazê-lo! `import UIKit import JSQMessagesViewController
classe CustomMessage: JSQMessage {pontuação da variável: 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")
}
} `
No entanto, agora estou recebendo um erro apóssuper.init
assim sendo:must call a designated initializer of the superclass 'JSQMessage'