oc基礎-protocol協議的使用


 

 

1.協議:就是用來聲明一大堆方法的,供遵守這個協議的對象使用的

2.語法:

    @protocol  協議名稱  <NSObject,其他協議>

     //定義方法(僅時方法的聲明)

   @end

 

 NSObject是所有協議的基協議,最好是所有協議都遵守基協議

3.類遵守協議,那么這個類默認情況下,就會擁有這個協議內的所有的方法

  語法   

@interface  類名: 父類 < 協議名1,...>

@end

 

4.協議遵守協議

  語法  

@protocol 協議名 <其他協議,...>

@end

 

5.協議中聲明方法的關鍵字

   @required:在遵守某個協議時,必須實現該關鍵字修飾對方法(字面上是必須的,實際要求沒那么嚴格),否則會有警告的(默認的)

   @optional:可以實現也可以不實現該關鍵字修飾的方法

 eg.@required

  - (void) xxx;

6.在定義變量時,可以限制這個變量保存的對象去遵守某個協議

  類名 <協議名稱> *變量名 ;      =》也就是說這個變量必須是某個類型的,並且這個類還必須遵守了這個協議的

      id <協議名稱> 變量名 ;            =》id表示任意的oc對象類型,相當於NSObject *類型,

7.property聲明屬性時,也可也用協議限制該屬性

     @property(nonatomic,strong)  id<協議名> 屬性名;  =》這是一種設計模式,這樣這個屬性類型可以是遵守了這個協議的任何一種類型

     @property(nonatomic,strong)  類名<協議名> 屬性名;  =》定死是哪個類型的了,並且這個類必須遵守這個協議

8.定義協議的位置;可以是在一個單獨的.h文件中定義(一般會有多個類去遵守的情況),也可以直接定義在搖遵守的那個類的.h文件中

9.@protocol:用於聲明一個協議

    類似於@class,僅時做一個聲明,在編譯的時候告訴編譯器,並不包含文件里的內容,在需要使用文件的時候才import 文件

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM