//协议-一个方法列表,遵循正式协议时需要在声明类时说明要遵循的协议。
#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];----------------------
协议的简单介绍及使用
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...