1.协议的定义
@protocol 协议名称 <NSObject>
// 方法列表......
@end
2.如何遵守一份协议
-
类遵守协议
@interface 类名 : 父类名 <协议名称1, 协议名称2>
@end
-
协议遵守协议
@protocol 协议名 <协议名称1, 协议名称2>
@end
3.协议中方法声明的关键字
-
@required(默认)
要求实现方法,如果没有实现,就会有警告
-
@optional
不要求实现方法
4.定义一个变量的时候,限制这个变量保存的对象遵守某个协议
-
类名 <协议名称> *变量名;
-
id <协议名称> 变量名;
如果没有遵守对应的协议,编译器就会警告
5.@property中声明的属性也可以用作一个遵守协议的限制
-
@property(nonatomic, strong) 类名<协议名称> *属性名;
-
@property(nonatomic, strong) id<协议名称> 属性名;
6.协议可以定义在单独的.h文件中,也可以定义在某个类中
-
如果这个协议只用在某个类中,应该将协议定义在该类中;
-
如果这个协议用在很多类中,就应该定义在单独的.h文件中;
7.分类可以定义在单独的.h和.m文件中,也可以定义在原来类中
-
一般情况下,都定义在单独的文件中,因为分类的作用就是在不改变原来类的前提下进行扩充方法;
-
定义在原来中的分类,只要求能看懂语法;