美文网首页iOS-faceiOS收录
iOS #include、#import、@class的区别

iOS #include、#import、@class的区别

作者: 不做待宰的猴子 | 来源:发表于2016-08-23 17:38 被阅读0次

    在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类中重复定义。  

    相关文章

      网友评论

        本文标题:iOS #include、#import、@class的区别

        本文链接:https://www.haomeiwen.com/subject/jjrnsttx.html