如果只在实现文件中导入类,为什么要使用前向声明?
例如,在ViewController.h中
@class AnObject
@interface ViewController : UIViewController
@end
ViewController.m中的
#import AnObject.h
@interface ViewController (){
AnObject *anObject;
}
@end
编辑:我们可以根据示例删除头文件中的@class AnObject吗?
答案 0 :(得分:1)
前向声明用于最小化类之间的依赖关系。想象一下,如果你有一个非常大的项目,导入会增长并增加你的代码添加不必要的编译。在标题中使用前向声明会显着缩短编译时间。虽然,新的编译器是如此先进,以至于可能不需要向前声明类。考虑一下C& C ++是在每个CPU周期真正计算到速度的时候标准化的,而且系统内存很小。现在我基本上使用@class
指令来保持我的代码更清晰,更统一。