在目标c中导入标题

V-X*_*eme 8 objective-c forward-declaration build-time ios

在Objective-c中,当我们按照约定将一个类的对象用于另一个类时,我们应该在.h文件中转发声明类,即@class classname;.并且应该在.m文件中导入头文件,即#import "header.h".但是如果我们在.h中导入头文件,那么我们不必再在.m文件中导入它.那么这个大会背后的原因是什么?哪种方式有效?

jus*_*tin 16

那么这个大会背后的原因是什么?

您应该@class MONClass;在可能的情况下支持前向声明(),因为编译器在使用之前需要知道typename是一个objc类,并且因为它#import可以拖入大量其他头文件(例如整个框架/库),严重扩展和复杂化依赖关系并增加构建时间.

哪种方式有效?

前瞻性声明.您的构建,重建和索引将是多少,如果你这样做正确更快.