import,include

1. #import导入头文件,即:导入头文件中的内容到当前类

2. #import “”导⼊自定义类,#import <>导入类库中的头文件。

3.功能类似C语言中的#include,但是可以避免头文件被重复导 入。(也即可以自动避免)

4. 容易出现循环导入头文件问题。

 针对上面4的循环导入头文件而出现的死循环,OC中用@class + 类来解决

@class A;//不会执行导入,只是声明了会用到A类,然后用到A类时会去A类中寻找

// #import和#include相比,#import可以避免重复导入

// #import 可能会造成循环编译,@class可以解决这个问题,@class A:只是将A声明成一个类

// 编译器不会导入A的内容

// 在使用@class的时候,一定要在.m中引入对应的头文件,例如:@class A;要在对应的.m文件

// 中写:#import “A.h”

@interface B : NSObject

{

    A * _a;

}

@end

==================================
B.m中内容:

#import "B.h"

#import"A.h"     //这里重点:这是在.m中导入的类,而死循环是因为都是在.h中导入,造成编译时

                  //的死循环

@implementationB 

@end

原文地址:https://www.cnblogs.com/ouyangxiaoyao/p/6269115.html