Swift 覆盖方法 didPressSend
Swift override method didPressSend
我正在使用 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.
中表示
您可以通过键入 override func didpress
然后接受建议的完成来更正错误。在那里你会看到有一些细微的差别,最显着的是强制展开的可选值:
override func didPressSend(_ button: UIButton!,
withMessageText text: String!,
senderId: String!,
senderDisplayName: String!,
date: Date!) {
print("works")
}
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.
}
在那里练习安全代码。
我正在使用 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.
中表示您可以通过键入 override func didpress
然后接受建议的完成来更正错误。在那里你会看到有一些细微的差别,最显着的是强制展开的可选值:
override func didPressSend(_ button: UIButton!,
withMessageText text: String!,
senderId: String!,
senderDisplayName: String!,
date: Date!) {
print("works")
}
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.
}
在那里练习安全代码。