swift的协议类似于其他语言的接口,类、枚举、结构体都可以遵循协议
//读写属性
varname:String{get set}
//类型方法
static func method()
//实例方法
func method1()
//可变方法
mutating func method2()
}
协议可以继承另一个协议
protocol k:p {
}
从习惯上考虑,在同时存在父类和协议的时候,父类放在最前面
另外也可以用extension扩展写在本类的下面,这样的可读性比较高(推荐)
class viewController : BaseViewController {
}
extension viewController : p {
}
协议也可以作为方法的返回值