基本用途
- 可以用来声明很多方法
不能声明成员变量,只有.h文件
- 只要某个类遵守了这个协议,就相当于拥有了这个协议中的所有方法声明
任何类都可以使用协议,只要遵守它
- 只要父类遵守了某个协议,就相当于子类也遵守了
二、格式
- 协议的编写
@protocol 协议名称
方法声明列表
@end
@protocol myProtocol <NSObject>
@required //要求实现,不实现就会发出警告
- (void)test1;
@optional //不要求实现
- (void)test2;
- 某个类遵守协议
@interface 类名:父类<协议名称1,协议名称2>
@end
.h
#import "头文件.h"
@interface Person:NSObject<myProtocol>
@end
.m
-(void)test1{
}
-(void)test2{
}
三、关键字
协议中有两个关键字可以控制方法是否要实现默认是@required,要求实现,如果没有实现,会发出警告
,在大多数情况下,用于程序员之间的交流
四、协议可以遵守协议协议继承协议、扩充一些方发声明
@protocol MyProtocol3 <MyProtocol>
- (void)hehe;
@end
网友评论