Метки аргументов не соответствуют никаким доступным перегрузкам
Я работаю над приложением обмена сообщениями, используя JSQMessagesViewController, и я хочу связать другую переменную, целое числоscore
с каждым сообщением (вместе со значениями по умолчанию, такими какsenderID
, text
, а такжеdisplayName
). Вот как я пытаюсь реализовать это:
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)
}
}
Однако я получаю следующее сообщение об ошибке:
Argument labels '(senderId:, displayName:, text:, score:)' do not match any available overloads
Я могу только предположить, что это потому, что есть какое-то предопределенное определение того, какие данные может содержать объект JSQMessage, я просто не уверен, как его переопределить, чтобы я мог связать дополнительную переменную с моими сообщениями.
Примечание: я попытался напрямую изменить код в самой структуре JSQMessagesViewController (в пределахJSQMessage.h
а такжеJSQMessage.m
файлы), чтобы добавить дополнительную переменную, но это просто вызывает больше ошибок, и я боюсь, что что-то испортит.
Какие-либо решения?
Заранее спасибо.
РЕДАКТИРОВАТЬ
Я думаю, я понял, как это сделать! `import UIKit import JSQMessagesViewController
class CustomMessage: JSQMessage {переменная оценка: 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")
}
} `
Однако теперь я получаю сообщение об ошибкеsuper.init
в качестве таких:must call a designated initializer of the superclass 'JSQMessage'