A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© hee 中级黑马   /  2014-12-10 22:12  /  959 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 hee 于 2014-12-14 21:59 编辑

@class和#import的区别?


5 个回复

倒序浏览
#import是粘贴代码,@class只是表示这是一个类
回复 使用道具 举报
一、作用上的区别
1>#import会包含引用类的所有信息,包括引用类的变量和方法。
2>@class仅仅是告诉编译器有这么一个类,具体这个类里面有什么信息,完全不知。

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

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

回复 使用道具 举报
@class只是告诉编译器这是一个类,不进行其他操做。而#import是将该类的所有内容引入,执行的是类似Ctrl+V的操做。
回复 使用道具 举报
hee 中级黑马 2014-12-12 22:47:23
地板
mahei521 发表于 2014-12-11 15:08
@class只是告诉编译器这是一个类,不进行其他操做。而#import是将该类的所有内容引入,执行的是类似Ctrl+V ...

比喻的很形象,懂了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马