谈谈两种引用方式#import和@class使用区别-创新互联
在.h和.m文件中,什么时候才用#import,什么时候采用@class呢?先来看看两者有啥不同。
站在用户的角度思考问题,与客户深入沟通,找到白云网站设计与白云网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:做网站、成都网站建设、企业官网、英文网站、手机端网站、网站推广、域名申请、网络空间、企业邮箱。业务覆盖白云地区。区别一 :从包含的内容来看。
当使用#import的时候,它会包含这个类的所有信息,如属性,方法等。而@class则只是告诉编译器,其后面跟着的是类的名字,至于后面如何定义的,暂时不需要知道。在.h文件中,一般只需要知道类的名称就可以了,所以一般使用@class来引入这个类。 而在具体的实现类.m文件里面,我们常常会用到类的成员(属性,方法等),因此就需要使用#import了。 当然.h文件里面使用它也是完全没问题的。
区别二:从编译效率上看。
如果在.h文件中使用#import,假设A,B,C,D四个.h文件。并且四个文件存在依次引用关系,例如A—>B,B—>C, C—>D。当开始的头文件A有变化的时候,后面的所有引用它的类都得重新编译,如果几十个.h文件都存在这种依赖关系,那么重新编译耗时就比较长了,效率也就低了(主要指开发过程中,打好包之后没啥问题)。使用@class则不存在该问题,编译效率上来说是比较高的。
比较蛋疼的场景
假如存在循环依赖关系,例如A—>B,B—>A。如果使用#import来相互包含,在编译的时候就会报错,此时使用@class name在两个.h文件中相互声明则不会有这种问题。所以在.h文件中还是比较推荐使用@class,能够避免一些不必要的编译错误。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
本文名称:谈谈两种引用方式#import和@class使用区别-创新互联
分享链接:http://myzitong.com/article/dpjdop.html