//协议-一个方法列表,遵循正式协议时需要在声明类时说明要遵循的协议。
#import <Foundation/Foundation.h>
//声明一个协议。新建一个协议文件 新建协议使用Objective-C File文件新建一个.h文件。
@protocol HRPro <NSObject>
//必须实现的方法
@required
-(void)canCode;
-(void)canTalk;
//可选实现的方法
@optional
-(void)nearByHouse;
-(BOOL)youngAge;
@end
----------------HrManager * manager = [HrManager new];//管理协议,确定协议是否实现。----------------------
-(void)hrSomeBody:(id<HRPro>)someone;//管理者声明一个管理方法(对象是id类型,并且需要在声明中满足协议要求)------
-(void)hrSomeBody:(id<HRPro>)someone
{
if ([someone respondsToSelector:@selector(canTalk)]&&[someone respondsToSelector:@selector(canCode)])
//方法中确定对象是否满足约定协议、-----------
//检查对象是否完成此方法 返回YES NO
{
NSLog(@"恭喜你,被录用了。");
}
else
{
NSLog(@"很遗憾,条件不满足要求。");
}
}
-------Person * per = [Person new];//没有实现协议的人----------------
---------------Coder * cod = [Coder new];//实现协议的人-------------------
----[manager hrSomeBody:per];//调用方法,核实是否实现协议约定的方法。-------
------------------[manager hrSomeBody:cod];----------------------
网友评论