黑马程序员技术交流社区

标题: @class与@import的疑惑 [打印本页]

作者: oucding    时间: 2015-3-30 11:32
标题: @class与@import的疑惑
视频中说到:如果有上百个头文件都#import了同一个文件,或者这些文件依次被#improt,那么一旦最开始的头文件稍有改动,后面引用到这个文件的所有类都需要重新编译一遍,这样的效率也是可想而知的,而相对来讲,使用@class方式就不会出现这种问题了,但是我想说的是,你在.m文件中要是想用到.h文件的一些方法时,你还得#improt呀,这样最开始的头文件要是有电改动的话,后面引用到这个文件的所有类不还得都需要重新编译一遍么?哪位大神给解释解释呀
作者: Micro    时间: 2015-3-30 13:26
因为程序运行本身就是.m文件 的编译和执行。而如果.h文件中的话,是会直接报错或警告的。而.m文件不会。
作者: 完美世界    时间: 2015-3-30 16:54
你需要明白@class最佳的使用环境,如果乱用@class的话,你就需要搞清楚文件之间的关系,需要手动#import一些东西,这样只会更加麻烦。不用想的太多。
作者: chock江    时间: 2015-3-30 18:37
你的一个类声明要引用其他类的时候不就要import其他类的头文件了吗
作者: oucding    时间: 2015-3-30 20:27
完美世界 发表于 2015-3-30 16:54
你需要明白@class最佳的使用环境,如果乱用@class的话,你就需要搞清楚文件之间的关系,需要手动#import一 ...

我在多看看吧,反正就是个人觉得说的有点矛盾,很有可能是我没理解某一个环节吧
作者: oucding    时间: 2015-3-30 20:29
Micro 发表于 2015-3-30 13:26
因为程序运行本身就是.m文件 的编译和执行。而如果.h文件中的话,是会直接报错或警告的。而.m文件不会。 ...

哦, 我在深入了解一下这个东西吧
作者: 傲弛天下    时间: 2015-3-30 20:49
个人觉得主要有2点:1、.m文件是拷贝.h文件的,那么当最开始的头文件修改后,要是不用@class,那么.h文件得先改一次,改好后,.m文件要再一次,这样就得改2次了。而用@class的话,只要改一次。2、有时在.h文件中#import的方法,.m文件不一定全得用上。




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