protocol(協議)ui
與建立類同樣,右擊鼠標,選New File,選Objective-C,選protocol(切記!!!),而後寫協議名,就能夠了。
spa
1.Protocol:就一個用途,用來聲明一大堆的方法(不能聲明成員變量),不能寫實現。代理
2.只要某個類遵照了這個協議,就擁有了這個協議中的全部方法聲明。code
3.只要父類遵照了某個協議,那麼子類也遵照。orm
4.Protocol聲明的方法可讓任何類去實現,protocol就是協議。對象
5.OC不能繼承多個類(單繼承)可是可以遵照多個協議。繼承(:),遵照協議(< >)繼承
6.基協議:<NSObject>是基協議,是最根本最基本的協議,其中聲明瞭不少最基本的方法。it
7.協議能夠遵照協議,一個協議遵照了另外一個協議,就能夠擁有另外一份協議中的方法聲明。io
在這裏咱們建立了一個協議renshengclass
#import <Foundation/Foundation.h> @protocol rensheng <NSObject> //可選的 @optional -(void)TVing:(id)xiaoming; //必須實現的 @required -(void)eating:(id)xiaoming; @end
而後咱們在people類.h文件裏面引用它
#import <Foundation/Foundation.h> //引用rensheng的.h頭文件 #import "rensheng.h" //NSObject後面要加<>,裏面是協議名 @interface people : NSObject<rensheng> @end
接着咱們在people類.m文件裏面實現它
#import "people.h" @implementation people //@optional類型的是可選的,咱們並不必定要實現它 -(void)TVing:(id)xiaoming{ NSLog(@"小明不必定須要看電視"); } //@required類型是必須實現的,咱們必定要實現它 -(void)eating:(id)xiaoming{ NSLog(@"小明必定要吃飯"); } @end
delegate(代理)
定義: 爲其餘對象提供一種代理以控制對這個對象的訪問。在某些狀況下,一個對象不適合或者不能直接引用另外一個對象,而代理對象能夠在代理方和目標對象之間起到中介的做用。
使用代理模式能夠下降耦合度。大大的加強了代碼的彈性。
留着查資料!!!