Objective-C協議類似於Java中的接口或者C++中的純虛類,只有接口部分而沒有實現部分只定義了方法的聲明部分而沒有實現部分。關鍵字為@protocol,協議可以繼承別的協議,協議可以有多個用逗號分隔<p1 ,p2>。協議中不能有成員變量。
@protocol MyProtocol <NSObject>
-(void) read;
-(void)write;
@end</span>
定義一個MyProtocol協議繼承自NSObject協議,我們也可以使用預編譯指令@required和@optional來指定方法是必須實現的還是可選的。
一個類可以實現多個協議。我們再定義一個協議類Media.h
#import <Foundation/Foundation.h>
@protocol Media <NSObject>
-(void)playmusic;
-(void)playvideo;
@end
定義一個Mobile類繼承子這兩個協議
#import <Foundation/Foundation.h>
#import "MyProtocol.h"
#import "Media.h"
@interface Mobile : NSObject<Media, MyProtocol>
@end
實現Mobile類
#import "Mobile.h"
@implementation Mobile
-(void)read{
NSLog(@"read");
}
-(void)write{
NSLog(@"write");
}
-(void)playmusic{
NSLog(@"playmusic");
}
-(void)playvideo{
NSLog(@"playvideo");
}
@end
Objective-C中@property的所有屬性詳解 http://www.linuxidc.com/Linux/2014-03/97744.htm
Objective-C 和 Core Foundation 對象相互轉換的內存管理總結 http://www.linuxidc.com/Linux/2014-03/97626.htm
使用 Objective-C 一年後我對它的看法 http://www.linuxidc.com/Linux/2013-12/94309.htm
10個Objective-C基礎面試題,iOS面試必備 http://www.linuxidc.com/Linux/2013-07/87393.htm
Objective-C適用C數學函數 <math.h> http://www.linuxidc.com/Linux/2013-06/86215.htm
好學的 Objective-C 高清PDF http://www.linuxidc.com/Linux/2014-09/106226.htm