个性化阅读
专注于IT技术分析

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

上一章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
赞(0)
未经允许不得转载:srcmini » Objective-C扩展(Extension)用法解析 – Objective-C开发教程

评论 抢沙发

评论前必须登录!