22章:类扩展

2018-05-29  本文已影响0人  帽子和五朵玫瑰

类扩展 .h implemention

涉及实现细节的属性和方法,才在类扩展中声明。

类扩展是一组私有的声明。只有类和其类实例才能使用在类扩展中声明的属性,实例变量或方法。

.m文件中的声明的属性,仅内部可见,其他位置都不能见。

隐藏可变属性

在.h文件中,声明一个assets属性,它是一个NSArray对象、一个addAsset方法及一个——asset实例变量,它是一个NSMutableArra有对象开发者会在头文件公布属性和实例变量,但不确定你是否希望其他非BNREmplouee实例对象或其他开发者用他们。

现在你知道了类扩展。在BNREmployee.m中,增加以下声明:

@interface BNREmployee(){
    NSMUtableArray *_asset;
}
@end

@implemention BNREmployee

@end

//在BNREmployee.h中,删除_asset实例变量的声明:

@class BNRAsset;

@interface BNREmployee : BNRPerson

@propert (nonatomic) unsigned int id;
@propert (nonatomic) NSArray *_asset;

现在大家知道asset是一个NSArray实例。非BNREmployee对象就要使用addAsset方法来操作这个数组。实际上,它是一个NSMutableArray实例。,可变版本的asset实例只有BNREmloyee对象才知道。

头文件及继承

子类无法获取父类的类扩展。子类会导入父类的.h文件。子类知道在父类头文件声明的内容,但无法知道父类的.m文件中的内容。

上一篇 下一篇

猜你喜欢

热点阅读