延展類目協議

來源:互聯網
上載者:User

1. 類目 (Category):為已知的類添加方法

可以為已知的類添加方法,哪怕是你沒有源碼的類

通過類目添加方法會成為原始類的一部分

與原類中的方法同級 

而且會被子類繼承

類目的用處

1. 可以擴充別人的類,可以作為繼承的替代方式。

 2. 把代碼放到多個檔案中;便於多人協作。

注意:

不能在類目中添加 成員變數

可以為同一類添加多個類目,但類目名和方法名不能重複 

不要隨意重寫類中的方法

*********************************************************************

2. 延展 (Extension) :是一種特殊形式的類目

編寫在類的實現檔案中

延展中定義的方法在類本身中實現(.m)

作用:定義私人方法

注意:

  延展不寫類目名時(即括弧內不寫),表示延展中定義的方法,必須實現。 

  如果提供了類目名稱,則可以選擇性實現

//····.m

@interface Test()

-(void) show;

@end

**************************************************************************

3. 協議 (Protocal):是一套標準(類似於介面、方法聲明)

        定義了應該實現什麼,但不關心具體的怎麼實現。

      OC的協議是由@protocol聲明的一組方法列表

      要求其它的類去實現,相當於@interface部分的聲明

@protocol 協議名稱 

@end 

確認協議:

定義的協議必須要被某些類實現

類中需要實現協議中定義的方法 

類中可實現多個協議

@interface 類名:⽗類名<
協議名稱,協議名⼆...>

@end

特點:

1. 協議相當於確認類的父類

2. 可以規範類的行為

3. 利於系統設計

4. 利於團隊開發等

5. 是可選文法,並不是一定要使用協議

注意:

確認協議時應實現協議中 @required
修飾的方法 

可以選擇性實現 @optional
修飾的方法

使用[對象
conformsToProtocol:@protocol
(SalerProtocol)]判斷是否遵循協議

協議的實現過程:定義協議------確認協議-------實現

******************************************************************************

協議應用—代理

代理模式:(有沒有協議都是可以實現方法)

    即本身不做實際的事情,而要求其他人去做

    例如要賣房子,不是直接銷售,而是讓中介去幫自己銷售 

    中介就是我們的代理

用assign修飾   

@property(assign, nonatomic) id<protocol>delegate;  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.