#include和#import区别以及@class作用
来源:互联网 发布:运动内衣知乎 编辑:程序博客网 时间:2024/05/29 04:58
对于#import,我想做过iOS开发的人应该都不陌生。在开发过程中,当我们需要声明某一个类时,都需要去引用。而#imclude的话,在我们学习C时就已经知道了,他的作用也是引用声明的意思。在表面上他们的作用似乎都是一样的。但是在具体功能实现方式上,还是有着很大的区别。
一、#import和#include区别
#include声明时相当于拷贝所代表头文件中的声明内容,所以如果使用两次#include的话,会报重复定义的错误。
#import声明时可以重复引用同一个文件多次,因为他在编译的时候会做一次判断,如果已经导入就不需要再导入了。
如果不是c/c++文件,尽量使用#import。并且如果能在实现文件中#import,就不在头文件中#import。(下面已经给出了原因)
二、在.h文件中使用@class代替#import的好处
之前我所理解到的,在一个.h文件中使用@class ClassName,然后在.m文件中再使用#import声明该类,这种方式是为了由于相互引用会报错的原因。(即A→B,B→A)
(但是我今天再去这样尝试的时候,又能够编译通过了,具体原因还需查证)
既然是好处的话,我觉得只是为了在这种情况下避免报错肯定不太可能。查了一下资料发现,@class声明的只是这个类的名称;而#import的话,是把引用的这个类的头文件全部走一遍,包括所有的成员变量和方法。所以在编译效率上,@class肯定是要更好的。试想一下,如果现在几十个类全部需要引用某一个类,那么这几十个类在编译的时候都需要把这个类的头文件走一遍,这个.......(楼主先去抽泣一会儿~)。再假如在递归调用的时候,(A→B,B→C,C→D.....)可想而知,使用@class,在编译的时候确实会快很多。
所以如果能在头文件中@class实现文件中#import,就不在头文件中#import。(因为有时在,h文件需要用到被声明的类的成员变量,所以有时需要使用#import)
- #include和#import区别以及@class作用
- OC学习篇之---@class关键字的作用以及#include和#import的区别
- OC学习篇之---@class关键字的作用以及#include和#import的区别
- OC学习篇之---@class关键字的作用以及#include和#import的区别
- 1.#import和#include的区别以及@class
- #import 与 #include的区别,以及 @class
- #import 与 #include的区别,以及 @class
- #include与#import的区别以及@class
- 黑马程序员-import和include的区别 以及 @class 与 #import 的区别
- #include和#import "" <>和@class区别讲解
- #include和#import "" <>和@class区别
- #include #import @class区别
- include、import、@class区别
- #Import #include @class区别
- #import、#include和@class的区别
- #import、#include和@class的区别
- #import、#include和@class的区别
- #import、#include和@class有什么区别
- JSP编译指令常用用法详解
- KKT条件
- BuildingS——排序+贪心
- 强引用,软引用,弱引用,虚引用
- 关于centos 挂载nfts文件系统
- #include和#import区别以及@class作用
- Linux网络基础知识
- 2015年4月16日---开始写自己的专业博客
- 数据类型转换(浮点数与整型)
- HBase安装
- Unity移动端播放网络视频
- 设计模式之状态模式
- java.util.concurrent并发集合
- Cordys BOP 4平台开发入门实战演练——Until流程建模开发