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