在OC中,引用文件可以通过#include、#import、@class三种方式。
一. #include
1. 在C语言中,我们使用#include来引入头文件。使用#include “xx.h”来引入自定义的头文件,使用#include来引入库中的头文件。
2. #include不是不能防止重复引用头文件,而是操作起来比较复杂。
3. #include:为了防止重复引用可采用:
#ifndef ViewController_h
#define ViewController_h
#endif
二. #import
1. #import是#include的升级版,可以防止重复引入头文件这种现象的发生。
2. #import在引入头的时候,就是完全将头文件拷贝到现在的文件中。所以也有效率上的问题。
3. #import最大的问题在于,需要避免出现头文件递归引入的现象。(如:A引入B,B引入A,那么A、B的头文件会互相不停的拷贝)
三. @class
1. @class用来告诉编译器,有这样一个类,使书写代码时,不报错。 但是@class只是使导入的类名在引用时不受影响,不能创建该类的对象,因为创建对象时也需要访问其内部方法。
2. 因为#import引入头文件有效率问题,所以,当还没有调用类中方法,仅仅是定义类变量的时候,使用@class来提醒编译器。而在真正需要调用类方法的时候,进行#import。
3. 如果A是B的父类,那么这是在B.h中就必须要使用#import来引入A的头,因为需要知道A类中有哪些变量和方法,以免B类中重复定义。
网友评论