Objective-C扩展(Extension)用法解析 – Objective-C开发教程

上一章Objective-C开发教程请查看:Objective-C冒充posing用法解析
扩展也就是匿名类别,就是没有名字的类别,不过只能对拥有源码的类进行扩展,也就是只针对自定义类。扩展比起类别限制稍微没那么多,可以添加属性和方法。
一般类扩展都是写在.m文件中,不再单独另外创建一个扩展文件,@interface在前,@implementation在后,另外需要导入原来类的头文件。由于只在.m文件中声明,所以只能是当前文件可用,并且不会被继承。
一般来说,匿名的东西都是即时用的,哪个地方需要类扩展就在哪里声明并即时实现(在.m文件中书写,在当前.m文件内可用)。
扩展相对还是比较有用的,但也只是因为OC的缺陷了,因为OC中并没有真正的私有方法(不公开给其他类使用的方法),那么我们可以使用匿名类别或扩展实现私有方法。也就是说在其中添加的属性或方法只能在当前文件可用,离开本文件都不可用了。这个用法你可以在iOS开发中,默认生成的ViewController中看到。
【Objective-C扩展(Extension)用法解析 – Objective-C开发教程】下面是一个例子:

@interface Things () { NSInteger thing4; } @property (readwrite, assign) NSInteger thing2; @property (assign) NSInteger thing3; @end#import "MyViewController.h" // 此乃本类的扩展 @interface MyViewController () // 在此声明方法,添加成员变量和属性 @end @implementation MyViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end

    推荐阅读