基本用途
- 可以用來聲明很多方法
不能聲明成員變量,只有.h文件 - 只要某個類遵守了這個協(xié)議,就相當于擁有了這個協(xié)議中的所有方法聲明
任何類都可以使用協(xié)議,只要遵守它 - 只要父類遵守了某個協(xié)議,就相當于子類也遵守了
二、格式
- 協(xié)議的編寫
@protocol 協(xié)議名稱
方法聲明列表
@end
@protocol myProtocol <NSObject>
@required //要求實現(xiàn),不實現(xiàn)就會發(fā)出警告
- (void)test1;
@optional //不要求實現(xiàn)
- (void)test2;
- 某個類遵守協(xié)議
@interface 類名:父類<協(xié)議名稱1,協(xié)議名稱2>
@end
.h
#import "頭文件.h"
@interface Person:NSObject<myProtocol>
@end
.m
-(void)test1{
}
-(void)test2{
}
三、關(guān)鍵字
協(xié)議中有兩個關(guān)鍵字可以控制方法是否要實現(xiàn)默認是@required,要求實現(xiàn),如果沒有實現(xiàn),會發(fā)出警告,在大多數(shù)情況下,用于程序員之間的交流
四、協(xié)議可以遵守協(xié)議協(xié)議繼承協(xié)議、擴充一些方發(fā)聲明
@protocol MyProtocol3 <MyProtocol>
- (void)hehe;
@end