我正在使用Swift 3.0和Xcode 8.0以及JSQMessages 7.3.4。
我正在尝试实现JSQMessagesViewController,具体来说,我试图覆盖didPressSend函数,但它一直在抱怨该方法不会覆盖其超类中的任何方法。
override func didPressSend(_ button: UIButton, withMessageText text: String, senderId: String, senderDisplayName: String, date: Date) {
print("working")
}
有关为何会这样做的任何想法?
它还抱怨方法不能是@obj覆盖,因为参数5的类型不能用Objective-C表示。
答案 0 :(得分:0)
您可以通过键入override func didpress
然后接受建议的完成来更正错误。在那里你会看到有一些微妙的差异,最值得注意的是强行解开的选项:
override func didPressSend(_ button: UIButton!,
withMessageText text: String!,
senderId: String!,
senderDisplayName: String!,
date: Date!) {
print("works")
}
答案 1 :(得分:0)
override func didPressSend(_ button: UIButton?, withMessageText text: String?, senderId: String?, senderDisplayName: String?, date: Date?) {
// Check to make sure we are sending something no need for blank messages.
guard let text = text else {
return
}
print("working")
// add logic here.
}
在那里练习安全代码。