OC的类别和类扩展

2019-12-07  本文已影响0人  一叶知秋0830

类别(Category)

类别和分类是一个概念,它是OC中特有的语法,它是一个指向分类的结构体的指针。原则上来说类别是用来给本类扩充方法的,是不可以添加属性和成员变量的。

类别的格式如下(Device是本类名称,括号中的Aditional是分类的名称):

// .h文件
#import "Device.h"

@interface Device (Aditional)

@end
// .m文件
#import "Device+Aditional.h"

@implementation Device (Aditional)

@end

分类的特点如下:

类扩展(Extension)

类扩展也叫匿名分类,因为类扩展的格式和分类很现实,只是分类的括号里面是分类名字,而类扩展的括号中是空的,所以叫匿名分类。

其实在实际开发中类扩展使用很频繁。常用的就是在.m文件的@implementation前面添加类扩展部分,其作用是给类添加额外的方法、属性和成员变量。

类扩展格式如下:

#import "Device.h"

@interface Device ()
@property (nonatomic , strong) NSString *deviceName;

// 类扩展中声明的方法要在本类的implementation中实现,否则会报警告
- (void)testFunction;

@end

@implementation Device

- (void)testFunction{
    
}

@end

类扩展的特点如下:

上一篇下一篇

猜你喜欢

热点阅读