我发现这段代码不会产生错误
protocol Foo{
func foo()
}
let x: Foo? = nil
当下面的人开始抱怨Use of protocol 'Foo' as a type must be written 'any Foo'
protocol Foo: ObservableObject{
func foo()
}
let x: Foo? = nil //Use of protocol 'Foo' as a type must be written 'any Foo'
因为ObservableObject
继承了AnyObject
,所以我试了
protocol Foo: AnyObject{
func foo()
}
let x: Foo? = nil
这也不会给出错误.
使用协议作为类型时需要写入any
的具体情况是什么?