【发布时间】:2023-03-23 03:29:01
【问题描述】:
在阅读有关可选协议要求的 Apple 文档后,它说您可以使用可选链来检查实现。我试过了,但我不断收到错误。似乎这不再是一种有效的方法,我正在尝试找出现在是否有新的方法可以做到这一点。
这是一个示例,因此您可以看到错误:http://swiftstub.com/743693493/
这是我的代码:
@objc protocol Bearable {
func growl()
optional func cough() -> String //Apparently bears cough when they are scared.
}
@objc class Bear:Bearable {
var name = "Black Bear"
func growl() {
println("Growllll!!!")
}
}
@objc class Forest {
var bear:Bear?
func scareBears() {
if let cough = bear?.cough?() {
println(cough)
} else {
println("bear was scared")
}
}
}
我收到错误:error: 'Bear' does not have a member named 'cough'
if let cough = bear?.cough?() {
【问题讨论】:
-
如果你将
bear定义为var bear: Bearable?就可以了 -
@MikeS 你完全正确。
-
@MikeS 你能把它写成答案让我选择吗?