protocol的基本使用與代理設計模式的應用

protocol的基本使用

1,格式:

 @protocol 協議名稱 <NSObject>

               協議內容

   @end

2,協議的使用,

@interface 類名 : 父類名 <協議名,協議名2>

@end

然後再.m方法中實現協議裏聲明的方法,當遵守多個協議時,多個協議以逗號隔開.

3,使用注意.

1,protocol就是用來聲明方法,不能聲明成員變量,也不能實現方法.

2,只要某個類遵守了這個協議,那麼就擁有了這個協議的所有方法聲明.

3,只要父類遵守了這個協議,那麼子類也遵守了.

4,Protocol裏的方法可以讓任何類去實現,Protocol只是聲明.

5,OC不能繼承多個類,但是可以遵守多個協議.

6,<NSObject>是基協議,是最基本最根本的協議,其中聲明瞭很多基本的方法.

7,協議可以遵守協議,當一個協議遵守了另一個協議,就可以擁有另一個協議中的方法聲明.

4,Protocol中的關鍵字

@required和@optional是Protocol中的兩個關鍵字.

@required修飾的方法聲明是必須實現的,這個關鍵字也是默認的.

@optional修飾的方法聲明可以不用實現.

5,Protocol的類型限制

1,給id類型的限制

使用id存儲對象時,給對象類型的限制:   id<協議A> 變量名; 例:  就是需要給變量baomu傳一個遵守協議<zhaogubabyProtocol>的對象.

2,給對象的限制

當對象類型遵守協議時,可以賦值的對象既要是同一個類型,又要遵守協議.

3,關聯關係下,對象的類型的限制問題.

當一個類的對象是另一個類的成員變量時,需要遵守協議才能賦值.

6,Protocol的代理設計模式

1,代理模式的概念:傳入的對象,代替當前類完成某個功能,稱爲代理.

利用協議實現代理模式的主要思路爲:

1)定義一個協議,裏面聲明代理類需要實現的方法列表.

2)創建一個代理類,遵守上面的代理協議.

3)在需要代理的類中,定義一個對象類型爲id且遵守代理協議的成員變量.

4)在需要代理的類中調用成員變量_delegate(代理)的方法,調用代理類的方法.

5)main.m或其他使用需要代理的類的文件中,爲需要代理的類的成員變量(代理類)賦值.


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章