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