#import和#include和@class的区别是什么?

(1)#import对比#include来说能保证文件只被引用一次。

例如:A文件#include了C文件,B文件也#include了C文件,这时候D文件同时#include A文件和B文件就会出错,因为这样就重复引用了C文件。如果使用#import就不会出错,因为#import会判断是否已经引用过,引用过就不会再引用。

(2)@class解决了相互引用的问题,当A需要#import B,同时B又需要#import A的时候,如果两边都用#import的话,会编译错误。这时候一边可以使用@class,@class就是告诉编译器有这么一个类,至于类的定义是啥不知道。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 3、请说明一下objective-c中#import 、#include 及@class的区别?#import<>...
    AlanGe阅读 986评论 0 0
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,765评论 18 399
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,210评论 30 471
  • #import与#include的区别 #import比起#include的好处就是不会引起交叉编译 for ex...
    myjourney阅读 347评论 0 0
  • 一、#include与#import区别 1. #include <xxx.h> 2. #import <xxx....
    single_heart阅读 5,400评论 7 14