與iOS自有的interface相似,不同在於protocol中無法宣告變數。
Usage
宣告一個叫Omniprinter的protocol
@protocol Omniprinter -(void) printInt:(int) intVar; -(void) printObj:(NSString*) obj; @end |
@interface Hello:NSObject @end |
@interface Hello:NSObject<omniprinter, protocol1, ...> @end |
其特性與Java的interface相同,比較特別的是在protocol當中可以加入修飾詞optional、required來決定是否一定要實作,預設值為required。
Usage
@protocol Omniprinter @optional -(void) printInt:(int) intVar; @required -(void) printObj:(NSString*) obj; |
在iOS中,類似泛型的用法如下:
表示變數的實體物件必需滿足Omniprinter這個protocol所宣告的方法
id<Omniprinter> delegate; |
表示類別變數的實體物件必需是Hello類別,且Hello類別必需實作Omniprinter這個protocol內的方法
Hello<Omniprinter>* delegate; |
資料出處《Object-C與iOS開發入門》
沒有留言:
張貼留言