協(xié)議的簡單介紹及使用

//協(xié)議-一個方法列表,遵循正式協(xié)議時需要在聲明類時說明要遵循的協(xié)議。

#import <Foundation/Foundation.h>
//聲明一個協(xié)議。新建一個協(xié)議文件    新建協(xié)議使用Objective-C File文件新建一個.h文件。
@protocol HRPro <NSObject>
//必須實現(xiàn)的方法
@required
-(void)canCode;
-(void)canTalk;
//可選實現(xiàn)的方法
@optional
-(void)nearByHouse;
-(BOOL)youngAge;

@end
----------------HrManager * manager = [HrManager new];//管理協(xié)議,確定協(xié)議是否實現(xiàn)。----------------------
-(void)hrSomeBody:(id<HRPro>)someone;//管理者聲明一個管理方法(對象是id類型,并且需要在聲明中滿足協(xié)議要求)------

-(void)hrSomeBody:(id<HRPro>)someone
{
    if ([someone respondsToSelector:@selector(canTalk)]&&[someone respondsToSelector:@selector(canCode)])
//方法中確定對象是否滿足約定協(xié)議、-----------
        //檢查對象是否完成此方法 返回YES  NO
    {
        NSLog(@"恭喜你,被錄用了。");
    }
    else
    {
        NSLog(@"很遺憾,條件不滿足要求。");
    }
}
-------Person * per = [Person new];//沒有實現(xiàn)協(xié)議的人----------------
---------------Coder * cod = [Coder new];//實現(xiàn)協(xié)議的人-------------------
----[manager hrSomeBody:per];//調(diào)用方法,核實是否實現(xiàn)協(xié)議約定的方法。-------
------------------[manager hrSomeBody:cod];----------------------
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容