转载

#import和@class的使用

#import          #import 大部分功能和#include是一样的,但是他处理了重复引用的问题,不用再去自己进行重复引用处理. @class

        用于声明一个类,告诉编译器它后面的名字是一个类的名字,而这个类的定义实现是暂时不用知道的.也是因为在@class仅仅只是声明一个类,所以在后面的实现文件里面是需要去#import这个类,这时候才包含了这个被引用的类的所有信息。

 

使用场景:

(1)一般如果有继承关系的用#import,如B是A的子类那么在B中声明A时用#import

(2) 另外就是如果有循环依赖关系,如:A->B,B->A这样相互依赖时,如果在两个文件的头文件中用#import分别声明对方,那么就会出现头文件循环利用的错误,这时在头文件中用@class声明就不会出错

(3)还有就是自定义代理的时候,如果在头文件中想声明代理的话如@interface SecondViewController:UIViewController时应用#import不然的话会出错误,注意XXXXDelegate是自定义的

(4)如果只是在.h中声明属性时需要用到某个类,可以用@class,在头文件中大量import会导致编译开始时引入大量无用类

原文  http://www.cnblogs.com/SunnyFiona/p/5198168.html
正文到此结束
Loading...