#import A 会包含被引用A类的所有信息,包括被引用类的变量和方法;
@class B 只是告诉编译器在这个文件中,B类只是声明,具体这个类有什么信息,这里不需要知道。等实现文件中真正需要的时候,才会真正查看B类中的信息。
在.h里
@class B;
在.m里
#import "B.h"
@class的主要作用是 :
1. 解决相互导入的问题。
2. 在编译效率方面考虑,如果你有100个头文件都#import了同一个头文件,或者这些文件是依次被引用的,如A–>B, B–>C, C–>D这样的引用关系。当最开始的那个头文件有变化的话,后面所有引用它的类都需要重新编译,如果你的类有很多的话,这将耗费大量的时间。而是用@class则不会。