Objective-C 入門(七)協議 protocol(JAVA中的接口)

 

Objective-C 入門(七)協議 protocolJAVA中的接口)
 
接口的作用想必大家都比較瞭解 OV中的 protocol 相比接口作用相似 語法稍有不同
 
1.先來看聲明一個協議 在創建文件的時候選擇.protocol文件 :
 
   @protocol SKAnimal
-(void)eat;
   @optional
-(void)think;
   @end;
@protocol 用來聲明這是一個協議 @optional 下邊的方法是可以選擇實現的, 還 可以通過 @required 屬性來聲明這個方法是必須實現的;
 
2.當一個類實現這個協議 只需要在 父類名之後加上"<協議名稱>"即符合了這個協議
 
@interface SKPerson:NSObject <SKAnimal> //---這裏就實現了這個協議;
 
 
3.你可以用 conformsToProtocol 方法來檢查 這個類是否遵循某項協議 :
 
   id person
   if([person conformsToProtocol:@protocol (SKAnimal)]==YES){
            ........
   }
 這裏注意寫法就可以了 這個方法參數需要一個protocol 對象 傳進來一個就可以了
 
4. 當然一個類可以遵循多個協議
   @interface SKPerson:NSObject <SKAnimal,SKAndroid>
 
5. 如果父類遵循了某個協議 子類也就默認遵循了這個協議
6. 協議可以遵循另一個協議 如果JAVA中的接口繼承接口一樣 :
     @protocol SKAnimal <SKAndroid>
7. Category 類也可以遵循某項協議:
@ interface SKPreson(自定義名字)<SKAnimal>
8. OC中還有一個定義:非正式協議
   個人理解 這個非正式協議 就是 Category 的第二種寫法 只不過這個協議只符合這 一個類
 
9.  RespondsToSelector 自省機制
     
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章