Objective-C中的類目與協議

來源:互聯網
上載者:User

標籤:

類目的定義與類的定義相似:1、聲明

@interface NSString (CSayHi)       NSString是目標類;CSayHi是類目名稱; 且後面沒有 :NSObject

2、實現

@implementation NSString (CSayHi)

3、檔案名稱

NSString+CSayHi

 

類目:

類目也成為分類(特徵)

1、可以為已知的類添加方法,哪怕是你沒有原始碼的類;

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

3、與原類中的方法同級;

4、而且會被子類繼承;

類目的用處:

1、可以擴充別人的類,可以作為子類的替代方式;

2、把同一個類的代碼放到多個檔案中,便於多人協作。

注意:

1、不能在類目中添加執行個體變數;

(category,不可以有私人變數,但是可以有@property的聲明,property的聲明只是聲明了該類的set,get方法(需要引用該category的標頭檔),但是category實現的m檔案裡面根本就沒有產生這兩個方法,所以你使用self.xxx時,會掛掉,錯誤提示:沒有get/set方法。

你在category的m檔案裡面@synthesize 也無法聲明.

也就是說,有聲明,無實現。)

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

3、不要隨意重寫類中的方法(避免其原始程式的失效)

 

延展:

延展是一種特殊形式的類目。

1、編寫在類的實現檔案中;

2、延展中定義的方法在類本身中實現。

作用:

定義私人方法。

注意:

延展不寫類目名時,表示延展中定義的方法,必須實現。

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

擴充類的方法:1. 修改類原始碼2. 編寫此類的子類3. 類目 (Category)4. 延展 (Extension)5. 協議 (Protocal) OC中只允許單繼承。
但是OC中可以實作類別似多繼承的方法:實現OC多協議,達到實作類別似多繼承的目標。 1、協議2、遵守協議的類3、調用代理的類(物件導向的過程就是面向編寫類的過程。)[email protected](方法名) 協議:協議就是一套標準;它只聲明了方法,不具體實現,由接收協議的對象負責實現。OC的協議是由@protocol聲明的一組方法列表要求其他的類去實現,相當於@interface部分的聲明。@protocol  協議名稱@end 確認協議:定義的協議必須要被某些類實現;類中需要實現協議中定義的方法;此過程稱為確認協議。@interface   類名:父類名<協議名稱,協議名稱2,...>@end注意:確認協議時應實現協議中@required修飾的方法;可以選擇性實現@optional 修飾的方法。使用【對象 conformsToProtocol: @protocol (SalerProtocol )]判斷是否遵循協議 代理模式:即本身不做實際的事情,而要求其他人去做;說白了就是找一個人幫忙自己做事情,相當於找一個代理來完成自己想做的事情;

@interface People : Person

 @property (copy,nonatomic) NSString * name;

 @property(assign,nonatomic)iddelegate;

此時,標示了任何確認了MarryProtocol的對象 ,delegate為代理。

Objective-C中的類目與協議

相關文章

聯繫我們

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