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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© oucding 中级黑马   /  2015-3-30 11:32  /  1935 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

视频中说到:如果有上百个头文件都#import了同一个文件,或者这些文件依次被#improt,那么一旦最开始的头文件稍有改动,后面引用到这个文件的所有类都需要重新编译一遍,这样的效率也是可想而知的,而相对来讲,使用@class方式就不会出现这种问题了,但是我想说的是,你在.m文件中要是想用到.h文件的一些方法时,你还得#improt呀,这样最开始的头文件要是有电改动的话,后面引用到这个文件的所有类不还得都需要重新编译一遍么?哪位大神给解释解释呀

6 个回复

正序浏览
个人觉得主要有2点:1、.m文件是拷贝.h文件的,那么当最开始的头文件修改后,要是不用@class,那么.h文件得先改一次,改好后,.m文件要再一次,这样就得改2次了。而用@class的话,只要改一次。2、有时在.h文件中#import的方法,.m文件不一定全得用上。
回复 使用道具 举报
Micro 发表于 2015-3-30 13:26
因为程序运行本身就是.m文件 的编译和执行。而如果.h文件中的话,是会直接报错或警告的。而.m文件不会。 ...

哦, 我在深入了解一下这个东西吧
回复 使用道具 举报
完美世界 发表于 2015-3-30 16:54
你需要明白@class最佳的使用环境,如果乱用@class的话,你就需要搞清楚文件之间的关系,需要手动#import一 ...

我在多看看吧,反正就是个人觉得说的有点矛盾,很有可能是我没理解某一个环节吧
回复 使用道具 举报
你的一个类声明要引用其他类的时候不就要import其他类的头文件了吗
回复 使用道具 举报
你需要明白@class最佳的使用环境,如果乱用@class的话,你就需要搞清楚文件之间的关系,需要手动#import一些东西,这样只会更加麻烦。不用想的太多。
回复 使用道具 举报
因为程序运行本身就是.m文件 的编译和执行。而如果.h文件中的话,是会直接报错或警告的。而.m文件不会。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马