#import和@class在oc中的区别。
来源:互联网 发布:java定时器执行一次 编辑:程序博客网 时间:2024/05/29 14:34
1.#import会包含这个类的所有信息,包括实体变量和方法,而@class只是告诉编译器,其后面声明的名称是类的名称,在编译的时候,告诉编译器,这是一个类名,无需报错。
2.在头文件中, 一般只需要知道被引用的类的名称就可以了。 不需要知道其内部的实体变量和方法,所以在头文件中一般使用@class来声明这个名称是类的名称。 而在实现类里面,因为会用到这个引用类的内部的实体变量和方法,所以需要使用#import来包含这个被引用类的头文件。
3.在编译效率方面考虑,如果你有100个头文件都#import了同一个头文件,或者这些文件是依次引用的,如A–>B, B–>C, C–>D这样的引用关系。当最开始的那个头文件有变化的话,后面所有引用它的类都需要重新编译,如果你的类有很多的话,这将耗费大量的时间。而是用@class则不会。
4.如果有循环依赖关系,如:A–>B, B–>A这样的相互依赖关系,如果使用#import来相互包含,那么就会出现编译错误,产生死循环的问题。如果使用@class在两个类的头文件中相互声明,则不会有编译错误出现。
综上所述.@class一般出现在头文件中.#import一般出现在实现,也就是.m中.
0 0
- #import和@class在oc中的区别。
- #import和@class在oc中的区别。
- #import和@class在IOS中的区别
- OC 导入类 #import和@class 区别
- OC 导入类 #import和@class 区别 .
- iOS中的#import和class区别
- OC学习之路:@class和#import的区别
- oc 中 ID 数据类型 以及 #import 和@class区别 摘要
- iOS笔记--oc语法3 (#include和#import的区别、#import和@class的区别)
- @Class和import区别
- @class 和 #import 区别
- OC中 #include、#import、@class 区别
- OC中@class与#import区别
- #import和@Class的区别
- @class和#import的区别
- @class 和 #import 的区别
- @CLASS 和 #IMPORT 的区别
- @import和@class的区别
- linux内核学习——内存管理
- 液晶\串行\1602串口 (4bit)通讯
- Linux操作系统下的多线程编程详细解析----条件变量pthread_cond_t那些事儿
- Fedora和conio.h不得不说的故事(fedora缺少conio.h最强解决方案)
- addSubView的一点讨论
- #import和@class在oc中的区别。
- 将.dll文件转化为.lib文件,并查看.lib中的函数
- WSAIoctl()
- vs2010编写C和解决窗口一闪而过的方法
- C++类的继承
- wrod中的公式字体
- 关于target...action中的一点体会
- 判断回文整型数
- Spoj 375 QTREE1 树链剖分裸题