黑马程序员技术交流社区

标题: @class和#import [打印本页]

作者: hee    时间: 2014-12-10 22:12
标题: @class和#import
本帖最后由 hee 于 2014-12-14 21:59 编辑

@class和#import的区别?



作者: 米匠    时间: 2014-12-10 22:37
#import是粘贴代码,@class只是表示这是一个类
作者: Littlekin    时间: 2014-12-10 22:53
一、作用上的区别
1>#import会包含引用类的所有信息,包括引用类的变量和方法。
2>@class仅仅是告诉编译器有这么一个类,具体这个类里面有什么信息,完全不知。

二、效率上的区别
如果有上百个头文件都#import了同一个文件,或者这些文件依次被#import,那么一旦最开始的头文件稍有改动,后面引用到这个文件的所有类都需要重新编译一次,编译效率非常低。
相对来讲,使用@class方式就不会出现这种问题了。
作者: 13hoop    时间: 2014-12-11 13:40
本帖最后由 13hoop 于 2014-12-11 13:42 编辑

@class只是一种标识,没有任何意义如果具体执行时需要引述的子类  还是需要import的


作者: mahei521    时间: 2014-12-11 15:08
@class只是告诉编译器这是一个类,不进行其他操做。而#import是将该类的所有内容引入,执行的是类似Ctrl+V的操做。
作者: hee    时间: 2014-12-12 22:47
mahei521 发表于 2014-12-11 15:08
@class只是告诉编译器这是一个类,不进行其他操做。而#import是将该类的所有内容引入,执行的是类似Ctrl+V ...

比喻的很形象,懂了。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2