协议(protocol)是指两个或两个以上具有独立性的主体为了开展某项活动,经过协商后达成的一致意见。协议总是指某一层的协议。准确地说,它是在同等层之间的实体通信时,有关通信规则和约定的集合就是该层协议,例如物理层协议、传输层协议、应用层协议。我要说的这个协议是指界面进行数据传递时,根据自己的需求声明的协议.在协议声明和实现过程中,我把他分为了六步.
一个简单的结婚协议的实现:
先创建俩个类,一个Boy类,一个Girl类.
Girl.h
#warning 第一步:声明协议
@protocol GirlDelegte <NSObject>
// 声明协议默认必须实现的方法
-(void)makeMoney;
@end
@interface Girl : NSObject
#warning 第二步:设置代理人属性
@property(nonatomic, assign)id<GirlDelegte>delegate;
// 女方调用结婚方法让男方赚钱
-(void)marray;
@end
@implementation Girl
#warning 第三步:实现结婚方法,判断代理人是否实现赚钱方法
-(void)marray
{
if ([self.delegate respondsToSelector:@selector(makeMoney)]) {
[self.delegate makeMoney];
}
}
@end
Boy.h
#import "Girl.h"
#warning 第四步:男方与女方签订协议
@interface Boy : NSObject<GirlDelegte>
@end
Boy.m
@implementation Boy
#warning 第六步:实现协议方法
-(void)makeMoney
{
NSLog(@"签署结婚协议之后,男方赚钱!");
}
@end
#import "Boy.h"
#import "Girl.h"
int main(int argc, const char * argv[]) {
Boy *boy = [[Boy alloc] init];
Girl *girl = [[Girl alloc] init];
#warning 第五步:设置要实现协议方法的代理人
girl.delegate = boy;
// 声明协议的女方调用方法
[girl marray];
return 0;
}
控制台输出:
@end