原文:http://www.jianshu.com/p/7e0dee7f84b2
import
- 是 Objective-C 导入头文件的关键字,完整地包含某个文件的内容
- 会自动导入一次,不会重复导入
- 不会引发交叉编译; 因为在 Objective-C 中会存在C/C++和Objective-C 混编的问题,如果用 #include 引入头文件,会导致交叉编译。
include
- C/C++ 导入头文件的关键字,完整地包含某个文件的内容
一、#import和#include的区别
当我们在代码中使用两次#include的时候会报错:因为#include相当于拷贝头文件中的声明内容,所以会报重复定义的错误
但是使用两次#import的话,不会报错,所以他可以解决重复导入的问题,他会做一次判断,如果已经导入一次就不导入了
@class
- 仅仅是声明一个类名,并不会包含类的完整声明
- 能解决循环包含的问题:当两个类文件有循环依赖关系 ( A 引用 B , B 引用 A ) 时,需要用 @class
import<> 和 import""
<> : 引用系统文件,它用于对系统自带的头文件的引用,编译器会在系统文件目录下去查找该文件.
"": 用户自定义的文件用双引号引用,编译器首先会在用户目录下查找,然后到安装目录中查