一、作用
1、可以用来声明一大堆方法,不能声明成员变量
2、只要某个类遵守了这个协议,就相当于拥有这个协议中所有方法声明
3、只要父类遵守了某个协议,就相当于子类也遵守了
二、格式
1、协议的编写
@protocol 协议名称
方法声明列表
@end
2、某个类遵守协议
@interface 类名:父类<协议名称>
@interface 类名:父类<协议1,协议2>
三、关键字
协议中的方法是否要实现(默认是@required),在于两个关键字
@required:必须实现,否则警告
@optional:不一定要实现
四、基协议
1、NSObjet是一个基类,任何类都要继承他
2、NSObject也是一个协议,叫做基协议
3、建议每个新的协议都要遵守NSObject协议
4、基类也遵守基协议
5、@protocol中声明的属性也可用作一个遵守协议的原则
例如:@Property (nonatomic, strong) 类名<协议> *属性名;
6、协议遵守协议
@protocol 协议名称<协议1,协议2,……>