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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Jack-xie 中级黑马   /  2014-10-7 20:37  /  721 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

请问在内存管理中,要声明一个类,使用@class  进行声明这个类,然而在.m 文件中想使用这个类的一些方法,就需要再次引入先前这个类的 .h文件,请问如此这样,为什么就不能直接在最开始时就直接讲这个类的 .h 文件引入,以便之前使用的畅通呢?

2 个回复

倒序浏览
可以最开始在.h中导入,但是这个会有个问题,这也是@class和#import最主要的区别:
当我们当如上百个文件的时候,如果被导入文件做了修改,则所有文件都需要重新编译,这样的话效率较低。
例如A->B B->C C->D.... 当A文件做了更改后,后面BCD文件都需要重新编译。
但是当用@class的时候,就不会存在这个问题,效率更高。
回复 使用道具 举报
本帖最后由 微雨独行 于 2014-10-8 03:24 编辑

这是一种优化,因为.m文件中并不一定要使用这个类的方法,只有实现方法才要.h,不然就不拷贝。内存管理,节约内存是值得关心的。最主要的是,它解决了循环引用的问题
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马