天天看點

Object-C加強 分類以及擴充

分類(類别)

作用:擴充已有類的功能

 1、分類是原來的類增加方法

 2、在方法内部可以通路原有類的成員變量(定義頭檔案中)

@interface CZPerson (Drink)  

 步驟

 1、為原有類建立一個分類

 2、在分類中增加新的方法的聲明和實作

 注意點:

    1、分類中不能擴充原有類的成員變量

    2、@property在分類中隻能生成getter setter方法的聲明,不能生成實作和成員變量

分類可以擴充系統自帶的類的功能

    給NSObject增加分類會影響到所有的類,但是這個東西一定要謹慎小心

    3、你不能在分類中定義與原有類同名方法,不同的分類之間也不可以有同名的方法

    4、如果你再分類中增加一個原有類同名方法 ,那麼分類中個方法會覆寫原有類的方法(哪怕你沒有導入這個分類)

5、多個分類中如果有相同方法,最後編譯分類的方法

  類擴充:一般情況下在.m檔案中,為類增加私有的屬性和方法

1、小括号中不可以有任何内容

2、一般寫在.m檔案中,增加類的私有成員變量、屬性、方法

例如在類的

@interface CZPerson ()

{

//   增加私有成員變量

    int _age;

}

// 增加私有屬性

@property (nonatomic,copy) NSString *name;

//增加私有方法

- (void) show;

@end

@implementation CZPerson

- (NSString*)description

{

    [self show];

    return [NSString stringWithFormat:@"age = %d,name = %@",_age,_name];

- (void) show

{

    NSLog(@"%d,%@",_age,self.name);

}

@end