1.协议总是以var关键字来声明变量属性。声明后面跟了{get set} 就表示可读可写,只跟来{get} 就表示可读的。
2.1不支持为方法中的参数提供默认值
2.2 当为类提供构造方法时,实现的类必须在方法前加上 required关键字,而且对于这个类的子类,如果重写类这个构造方法,还得加上override
2.3 协议可以作为类型,好比oc里面的id<protocol> delegate
3.通过扩展遵循协议,如果类型已经实现完全实现协议的方法,但没有声明遵循协议,可以通过空扩展体的扩展来遵循协议。就是a: protocalb {}
4.协议要只能被类遵循,需要在协议冒号后面加class
5.多个协议的合成是可以作为参数的,用符合(&)相隔
6.通过is和as检查类型对于协议是否符合遵循。
7.加optional修饰的属性或者方法,表示可选,可选是用在和oc进行交流时,需要在协议前加@objc
网友评论