美文网首页
#import与@class

#import与@class

作者: gpylove | 来源:发表于2018-11-07 15:31 被阅读1次

1.#import会包含这个类的所有信息,包括属性和方法,而@class只是告诉编译器,其后面声明的名称是类的名称,仅此而已。

2.在头文件中, 一般只需要知道被引用的类的名称就可以了。 不需要知道其内部的属性和方法,所以在头文件中一般使用@class来声明这个名称是类的名称。 而在实现类里面,因为会用到这个引用类的内部的属性和方法,所以需要使用#import来包含这个被引用类的头文件。

3.在编译效率方面考虑,如果你有100个头文件都#import了同一个头文件,或者这些文件是依次引用的,如A–>B, B–>C, C–>D这样的引用关系。当最开始的那个头文件有变化的话,后面所有引用它的类都需要重新编译,如果你的类有很多的话,这将耗费大量的时间。而是用@class则不会。

4.如果有循环依赖关系,如:A–>B, B–>A这样的相互依赖关系,如果使用#import来相互包含,那么就会出现编译错误,如果使用@class在两个类的头文件中相互声明,则不会有编译错误出现。

//A.h文件

#import"B.h"

@interface A : NSObject

@property(strong, nonatomic) B *_b;

@end

//B.h文件

#import“A.h"

@interface B : NSObject

@property(strong, nonatomic) A *_a;

@end

相关文章

  • #import与@class

    1.#import会包含这个类的所有信息,包括属性和方法,而@class只是告诉编译器,其后面声明的名称是类的名称...

  • 浅论@class与#import

    一、#import和#include的区别 1.#include:相信我们学C/C++时候是引入头文件用习惯了#i...

  • #import #include与@class的区别

    #import与@class的区别 1.import会包含这个类的所有信息,包括实体变量和方法,而@class只是...

  • iOS 基础 -《@class与#import的区别》

    #import与@class的区别 1.import会包含这个类的所有信息,包括实体变量和方法,而@class只是...

  • @class and #import

    简介 在 Objective - C 中也使用了“头文件”和“实现文件”来区隔代码,所以在创建类的时候我们要通过@...

  • #include/#import/@import/@class

    @class BaseUtils;@interface ViewController : UIViewContro...

  • #import、#include、@class、#import<

    转自:http://www.jianshu.com/p/7e0dee7f84b2import 是 Objectiv...

  • @class 与 #import 的区别

    import会将此类的所有文件全部导入,而@class只是告诉编译器有这么一个类,引用类名,一般用在.h文件@in...

  • @class 与 #import的差别

    import一个类的话 ,可以获取到这个类文件里面所有的变量以及所有公开的方法。但是@class的话只是告诉编译器...

  • @class与#import用法小结

    我们知道,通常在iOS编程中,我们会在.h文件中导入头文件时用@class,而在.m文件中则用#import方...

网友评论

      本文标题:#import与@class

      本文链接:https://www.haomeiwen.com/subject/dwrvxqtx.html