协议的格式:
@protocol 协议名称 <NSObject>
//方法声明列表
@end
某个类遵守协议
@interface 类名 父类< 协议1,协议2 >
@end
@required 要求实现的
@optional 可选择实现的
协议的基本用途:
1.可以用来声明一大堆方法(不能声明成员变量)
2.只要是某个类遵守了这个协议,就相当于拥有了这个协议中的所有方法声明
3.只要父类遵守了某个协议,就相当于子类也遵守了协议
4.一个类可以遵守多个协议
定义一个变量的时候,限制这个变量保存的对象遵守某个协议
类名 <协议名称> * 变量名;
id <协议名称> 变量名;
@protocol可以直接写到类的头文件中
当某个协议只在某一个类中用时,可以直接写到当前类中
当某个协议在多个类中使用时,需要写到单独的文件中