协议的定义:
@protocol 协议名称<NSObjet> //默认遵守NSObject协议
//方法声明
@end
协议的采纳:
- 创建类的时候遵守某个或多个协议
@interface 类名:父类<协议名称1,协议名称2>
@end
- 某个协议也可以遵守其他协议
@protocol 协议名称<其他协议名称1,其他协议名称2>
//方法声明
@end
protocol中@required和@optional的使用:
- @required:表示这个方法必须要实现(默认)
- @optional:表示这个方法不是必须要实现的
protocol类型限制:
//1>增加<houseHold>以后,表示obj只能赋值遵守了houseHold协议的对象
id<houseHold> obj = mm;
//2>表示obj2赋值的时候,必须是Girl对象,并其遵守了houseHold协议
Girl<houseHold> *obj2 = mm;
//3>让定义的成员属性(对象)遵守某个协议
@property (nonatomic,strong) Dog<协议名称> *dog;