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
协议
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 本章将会介绍 协议语法属性要求方法要求(Method Requirements)Mutating 方法要求构造器要...