头文件是一个类的“用户手册”,其他类可以通过头文件知道该类的功能和使用方法。使用头文件的目的是向其他类公开该类声明的属性和方法,也就是说,头文件中声明的属性和方法对其他类是可见的(visible)。
但是,并不是所有的属性或方法都要向其他类公开。只会在类的内部使用的属性和方法应该声明在类扩展中。
在类扩展中声明类的内部属性和方法是良好的编程习惯,这样做可以保持头文件的精简,避免内部实现细节的暴露。保证头文件中全部是其他类确实需要使用的属性和方法,从而让其他开发者更容易理解如何使用该类。
语法上,类扩展的声明方法与头文件类似,需要使用@interface指令,后跟类名,接着为一对空括号。声明属性和方法之后,需要使用@end代表类扩展的声明至此结束,通常将该类扩展写在实现文件顶部,位于@implementation之前
#import “ABCUIView.h”
@interface ABCUIView()
@property (strong, nonatomic) UIColor *circleColor;
@end
@implementation ABCUIView
注意:子类也无法访问父类在类扩展中声明的属性和方法,ABCUIView的子类无法访问circleColor属性