85_iOS干货44_#import引号和尖括号的区别 + xcode中黄色和蓝色文件夹的区别

一,#import引号和尖括号的区别

1,#include命令

#include是C/C++的预处理指令(Preprocessor Directive),主要作用是把头文件引入到任意源文件中,在预处理阶段,被包含的文件在源文件的指令地点进行整体替换

2,尖括号:  

#include // Angle bracket form

查找路径:从系统配置的头文件路径去找

系统的头文件目录:有frame search path和Header search path去找,配置如下

85_iOS干货44_#import引号和尖括号的区别 + xcode中黄色和蓝色文件夹的区别_第1张图片
如果,尖括号内仍然报错,请设置编译器为:legacy build system

85_iOS干货44_#import引号和尖括号的区别 + xcode中黄色和蓝色文件夹的区别_第2张图片

85_iOS干货44_#import引号和尖括号的区别 + xcode中黄色和蓝色文件夹的区别_第3张图片 

 

3,双引号:  

#include"path-spec" // Quoted form

查找顺序:从当前项目路径开始寻找文件,如果找不到,则到系统(项目)中配置的头文件路径去找

4,总结:

  • 如果是自定义的头文件,必须使用双引号,否则会找不到头文件,出现编译错误;
  • 如果是系统文件或者第三方SDK,可以用双引号,也可以用尖括号,但使用双引号会降低搜索效率,而且存在一定风险,当自定义头文件和系统头文件重名时,会把自定义文件作为搜索结果,比如我们自己写一个stdio.h,使用#include"stdio.h",不会得到系统库的调用
  • 所以系统文件或者第三方SDK(直接frame引入或者pod引入的配置路径不同),但尽量用尖括号import
     

二,xcode中黄色和蓝色文件夹的区别

1,黄色文件夹,就是group

  1. 逻辑文件夹,工程中文件夹的形式
  2. 本地目录中,有可能实际没有这个文件夹,里边文件的层级是乱的
  3. 参与项目编译

2,蓝色文件夹,就是folder

  • 本地目录中实际的文件夹
  • 不参与编译
  • 多为资源文件目录,例如图片文件等

3,文件夹的引用

  1. 目录中新建
    1. newGroup:新建逻辑文件夹group,同时也在本地目录中新建实际文件夹folder
    2. newGroupWithoutFolder:只是新建逻辑文件夹group,不创建folder
  2. 外部拖入
    1. 引用蓝色文件夹:外部实际
    2. 85_iOS干货44_#import引号和尖括号的区别 + xcode中黄色和蓝色文件夹的区别_第4张图片
    3. 创建黄色文件夹:
    4. 85_iOS干货44_#import引号和尖括号的区别 + xcode中黄色和蓝色文件夹的区别_第5张图片

 

你可能感兴趣的:(iOS)