iOS委託的理解

來源:互聯網
上載者:User

 轉載: http://www.cnblogs.com/Camier-myNiuer/archive/2013/03/24/Camier.html

今天晚上才終於弄明白了協議,委託。 實際上協議和委託是分不開的。有協議就必須有委託。自己寫好了協議(相當於介面),委託誰去實現呢。所以就必須有一個類去實現他。 那麼這個類就成為了 委派物件。

話說,我們為什麼要弄一個協議出來呢。我說說我的見解吧。 類A自己需要完成一個具體功能,但是這個功能的一些零組件在B類裡面,所以A類就寫一個協議,裡面寫上幾個方法。然後讓B類實現協議,即在@interface XXX <協議名>,然後在B類裡面指定這個協議的一個委派物件。即 a(A類的一個對象).delegate = self; self即指的是本類(B)。那麼 接下來要做的事情就是,在B類中去實現這個協議裡面的幾個方法。 現在呢,這個功能已經在B類裡面實現好了,那麼A類現在就能直接用了。A類具體怎樣調用這個協議裡面的方法呢?
我們應在A.h裡面寫一個 該id<協議名>類型的執行個體 或者 @property(nonatomic,assign)   id <協議名>DDD;然後在去調用該協議中的方法。  我在這裡插一句話,DDD 實際上指的是 實現該協議的類的對象。如果你聽的有點兒糊塗,我給你換一句話,此屬性用於指定實現該協議的對象。 需要理解的就是這麼一點兒。下面寫寫協議具體的文法

聲明協議:

@protocol 協議名

方法1;

方法2;

......

@end

舉個例子:

@end

實現該協議

哪個類實現,就在那個類的@interface 類名 旁邊的角括弧裡面寫上要實現的協議名。即<協議名>。

舉個例子:

在該類裡面如何指定委派物件呢,把聲明協議的那個類,寫一個對象。然後“.delegate” ,指定一個委派物件。

舉個例子:

指定了委派物件後,在該類裡面就要實現該協議裡面的方法了。

舉個例子:

 

在該類裡面已經實現了功能,那麼現在就要回到原來的那個類(即寫協議的那個類)裡面了,來實現協議方法。

怎樣實現呢,前面已經說過了,

首先,需要聲明一個id類型的執行個體變數或者聲明一個屬性,但是該id類型的變數聲明有些特殊,因為需要在id之後加上用角括弧括起來的該協議名,這個我們大家應該能想通。

舉個例子:

聲明一個執行個體變數:

 

 

 

聲明一個屬性:

需要在.m裡面

其次,再調用該方法。

舉個例子:

或者

最終,就大功告成了。相信大家看完之後有些累了,建議再重新看一遍。就會理解協議與委託。

本人學術淺薄,若有錯誤,請不惜賜教。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.