主要是对系统文件的引用 #import " " ...">
美文网首页
#import #include @class区别

#import #include @class区别

作者: 佟掌柜666 | 来源:发表于2018-08-14 15:24 被阅读0次

    1. import与include的 <> 与 "" 的区别

    <>主要是对系统文件的引用    #import<UIKit/UIKit.h>

    " " 是对用户自定义文件的引用  #import "baseViewController.h"

    2.import 与 include 区别

    主要是为了防止重复引用的问题

    #import 大部分功能和#include是一样的,但是他处理了重复引用的问题,我们在引用文件的时候不用再去自己进行重复引用处理.

    如果用include   ClassA中引用ClassC,ClassB引用ClassC,

    ClassD同时引用ClassA与ClassB,如果不做重复引用的处理,编译会提示对ClassC重复引用的错误

    #import 就不用做重复引用的处理

    3.@class与import的区别

    @class只是告诉编译器,其后面声明的名称是类的名称,至于这些类是如何定义的,不要要知道。

     #import会包含这个类的所有信息(包括实体变量和方法)

    在头文件中,一般只需要知道被引用的类的名称就可以了,不需要关心类内部细节,所以用@class

    在实现文件中,会用到被引用类的内部的实体变量和方法,所以用#import来包含被引用类的头文件

    编译效率方面

        假如你有100个头文件都#import了同一个头文件A,或者这些文件存在依赖关系:A–>B, B–>C, C–>D...。当头文件A发生改变的时候,后面所有引用它的类都需要重新编译,这是非常耗性能的。而用@class则不会。

    假如有循环依赖关系:A–>B,B–>A,如果使用#import来相互包含,那么就会出现编译错误,如果使用@class在两个类的头文件中相互声明,则不会有编译错误出现。

    相关文章

      网友评论

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

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