要想使swift中定义的协议中方法的实现变为可选的,有两种方法。
第一种,用@objc
修饰协议,再在要可选实现的方法前面用optional
修饰。但这个有点OC风格,一点都不swift
@objc protocol ExampleProtocol {
func method1() //必选
optional func method2() //可选
}
第二种方法,定义一个协议的扩展extension
,在扩展协议中给方法一个默认实现。个人推荐第二种方法。
protocol ExampleProtocol {
func method1() //必选
func method2() //可选
}
extension ExampleProtocol {
func method2() {
}
}