本博客由作者整理加自己理解,若理解有偏差欢迎各位指正
协议 protocal,是定义一些方法,由遵循该协议的类实现
#import <Foundation/Foundation.h>
@protocol xxDelegate <NSObject>
@required // 必须实现的方法 不设置的话默认为@require
-()xxxfun;
@optional //可选实现的方法
-()xxxfun;
@end
一个协议可以扩展自另一个协议,协议中间用逗号分隔
一个类可以实现多个协议,中间用逗号分隔
协议的实现只能放在类的声明(@interface),不能放在类的实现(@implementation)上。
协议中不能定义属性、成员变量等,协议中只能定义方法。
协议作用时约束类必须实现某些方法,与类本身没有关系
此处与java中interface概念区分
interface与实现其的子类理解上有“类”的概念,有实际的联系
协议只是约束一种行为,定义一些实现类必须实现或选择不实现的方法