您的位置:首页 > 产品设计 > UI/UE

我貌似好久没在项目里用到@class了

2018-06-29 10:38 232 查看
#include 玩C的都知道,#import玩OC的都知道,@class这个貌似真的很少用啊,这货到底杂用,好处是啥,为啥要用?

首先来个项目。默认ViewController,再来一个SViewController,顺带两个方法


来看看吧.h中引入另一个类的



然后发现

咦?看起来,是识别到这个类了,但是为啥就不让对这个类操作呢?

再试试调用其中的方法


发现,不管是类方法还是实例方法,都不能,我理解的是,@class只是告诉编译器,后边跟的,这是个类,至于好处,



这是看到的一个大神的说法,我理解的意思就是,引用头文件,会产生相互依赖关系,即:#import 会包含引用类的所有信息(内容),包括引用类的变量和方法@class仅仅是告诉编译器有这么一个类,具体这个类里有什么信息,完全不知,如果有上百个头文件都#import了同一个文件,或者这些文件都被引入,那么一旦最开始的头文件稍有改动,后面引用到这个文件的所有类都需要重新编译一遍,编译效率非常低,相对来讲,使用@class方式就不会出现这种问题了这种情况下

还有还有,一般开发中,恕我直言,你真的会很有必要在.h中使用别的头文件么?除了继承的父类 、 实现某个 protocol一般如果实在是需要,用@class就好了,没必要引入头文件,头文件放在类的.m中,这样子,而且在.m中可以有效减少交叉引用,其实Fundition和UIKit框架中全部使用.m内引用,.h内用Class声明的方式,这样做对app运行时没有影响的,但是以上思路,可以提高编译器预处理的速度,你的项目越大,这个影响就越明显。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  UIKIt
相关文章推荐