1. 程式人生 > >【Objective-C】OC中協議(Protocol)的基本概念和用法

【Objective-C】OC中協議(Protocol)的基本概念和用法

協議(Protocol)的基本概念

       協議的宣告看起來比較類似於Java中一個類的介面,但是和介面不同的是:協議沒有父類也不能定義例項變數。

協議是一種特殊的程式設計結構,用於宣告專門被別的類實現的方法。協議在以下場合非常有用:

  • 需要由別的類實現的方法
  •        宣告未知類的介面
  •        兩個類之間的通訊

協議的基本特點

  •       協議可以被任何類實現的方法
  •       協議本身不是類,它是定義了一個其他類可以實現的介面
  •       類別也可以採用協議(用的不多)

協議中的關鍵字

  •      @required:表示必須強制實現的方法
  •      @optional:表示可以有選擇性的實現方法

 範例:

 協議宣告: 

//協議的宣告#import <Foundation/Foundation.h>@protocolOneProtocol<NSObject>//可以選擇實現的方法:@optional-(void) optionalMethod1;-(void) optionalMethod2;//必須實現的方法:@required-(void) requiredMethod1;@end//採用協議(Test.h)#import "OneProtocol.h"@interfaceTest:NSObject<OneProtocol>

協議實現方法:

#import "Test.h"
@implementationTest-(void)optionalMethod1{//可選擇實現方法1}-(void)optionalMethod2{//可選擇實現方法2}-(void)requiredMethod1{//必須是實現方法2}@end
main.m方法:
Test*test=[[Test alloc]init];[test optionalMethod1];[test optionalMethod2];[test requiredMethod1];[test autorelease];