0
点赞
收藏
分享

微信扫一扫

@class 与 #import 之间的区别

Mhhao 2021-09-29 阅读 64
日记本

1)在编译时,#import 会导入类的所有信息(包括实体变量和方法的实现),而@class只是让编译器知道其后面声明的名称是类的名称,不关心那个类的变量、方法如何定义。

2)在.h文件中, 一般只需要知道被引用类的名称,并不需要知道其内部的实体变量和方法,所以,头文件中一般使用@class来声明这个名称是类的名称。 而在.m文件中,因为会用到这个引用类的内部的实体变量和方法,所以需要使用#import来包含这个被引用类的头文件。

3)在编译效率方面,如果你有很多个头文件都#import了同一个头文件,当被import的那个头文件有变化时,后面所有引用它的类都需要重新编译,比较耗时。而@class则不会。如果有A–>B, B–>A这样的相互依赖关系,使用@class在两个类的头文件中相互声明,可以避免循环依赖关系。

举报

相关推荐

0 条评论