天天看點

Objective-C:分類(Category、extension)

分類(Category 、Extension)

(一)分類的劃分

  (2) 1、(命名的類别)類别Category:隻能添加新的方法,不能添加新變量。

       2、(未命名的類别)類的擴充Extension://擴充一般直接寫在類的實作檔案中

                                       //擴充中定義的都是類中私有的執行個體變量和方法       

(二)分類的使用

(1)分類隻能增加方法(包括類方法和對象方法),不能增加成員變量

(2)在分類方法的實作中可以通路原來類中的成員變量;

(3)分類中可以重新實作原來類中的方法,但是會覆寫掉原來的方法,導緻原來的方法無法再使用(警告);

(4)方法調用的優先級:分類->原來的類->父類,若包含有多個分類,則最後參與編譯的分類優先;

(5)在很多的情況下,往往是給系統自帶的類添加分類,如NSObject和NSString,因為有的時候,系統類可能并不能滿足我們的要求。

(6)在大規模的應用中,通常把相應的功能寫成一個分類,可以有無限個分類,對原有類進行擴充,一般分子產品寫,一個子產品一個分類。

 //自定義的字元串類String

Objective-C:分類(Category、extension)
Objective-C:分類(Category、extension)
Objective-C:分類(Category、extension)
Objective-C:分類(Category、extension)

//單獨的類擴充檔案

Objective-C:分類(Category、extension)
Objective-C:分類(Category、extension)

//類别檔案

Objective-C:分類(Category、extension)
Objective-C:分類(Category、extension)
Objective-C:分類(Category、extension)
Objective-C:分類(Category、extension)

//主函數測試

Objective-C:分類(Category、extension)
Objective-C:分類(Category、extension)

//運作結果

Objective-C:分類(Category、extension)

2015-08-12 15:24:06.281 類别[1304:75695] string is runing

2015-08-12 15:24:06.282 類别[1304:75695] xiayuan

2015-08-12 15:24:06.282 類别[1304:75695] a = 7

2015-08-12 15:24:06.282 類别[1304:75695] b = 7

Program ended with exit code: 0

Objective-C:分類(Category、extension)

程式猿神奇的手,每時每刻,這雙手都在改變着世界的互動方式!

本文轉自當天真遇到現實部落格園部落格,原文連結:http://www.cnblogs.com/XYQ-208910/p/4724612.html,如需轉載請自行聯系原作者

繼續閱讀