天天看點

Object C學習筆記14-分類(category)

  在.NET中有一個非常帶勁的特性,那就是擴充方法. 擴充方法使你能夠向現有類型“添加”方法(包括你自定義的類型和對象噢),而無需建立新的派生類型、重新編譯或以其他方式修改原始類型。擴充方法是一種特殊的靜态方法,但是可以像擴充類型上的執行個體方法一樣進行調用。

  先看看.NET中擴充方法的定義和使用

  在.NET中Object 類并沒有In方法的定義,但是的确用"Object C"方法調用了In方法。

  Object C中的分類(category) 又稱類别在不修改原有的類的基礎上增加新的方法,和.NET一樣不能添加新的執行個體變量。

  新增一個Person的Object C對象,在Person.h檔案中定義相應的書屬性name和age,并且定義一個方法:

  -(void) addName:(NSString*) name1 andWithAge:(int) age1;

Object C學習筆記14-分類(category)
Object C學習筆記14-分類(category)

Person.h

  Person 類的較長的描述檔案如下:

Object C學習筆記14-分類(category)
Object C學習筆記14-分類(category)

Person.m

  怎麼調用這裡就不說了,如果現在要往類Person中添加一個新的方法 

  -(void) addCate:(NSString*) cate;

  建立一個PersonCategory 類,産生.h,.m兩個檔案。

  在PersonCategory.h檔案中修改為如上代碼,将PersonCategory改為Person,并且後面括号為(cate)  ; () 中的名字可以随便取

  修改PersonCategory.m檔案中的代碼如上。通過以上代碼就可以往Person類中添加新方法 addCate 。

  測試調用addCate方法如下:

  通過以上代碼可以看得出 Person 可以調用addCate方法了,當然調用addCate方法需要引入檔案PersonCategory.h 檔案。