可以聲明一大堆方法(不能生命成員變量)
只要某個類遵循了這個協議,就相當於擁有了這個協議中的所有方法聲明
只要父類遵循了某個協議,就相當於子類也遵守了
協議的文件只有一個
@protocal myprotocal
@end
一個類想要遵守一個協議
@interface Person : Object <Myprotocal, Myprotocal2>
一個類遵守一個協議以後,協議裏的方法默認是需要實現的,不實現編譯器就會警告,
協議裏的兩個關鍵字
@required 必須實現的
@optional 不是必須實現的
一個協議可以遵守另一個協議
最後都遵守的協議叫基協議,基類遵守了基協議
聲明一個對象,要求這個對象必須遵守某個協議
NSObject<Myprotocal> *obj =
id<Myprotocal> obj
Person<Myprotocal> // 必須遵守Myprotlcal 繼承了 Person
@property (nonatomatic,Strong) id<Myprotocal>
提前聲明
和@class 一樣
關鍵字 @protocal 是聲明協議的