static
- 1.修饰局部变量,被static修饰局部变量,延长生命周期,跟整个应用程序有关
被static修饰局部变量,只会分配一次内存
被static修饰局部变量什么时候分配内存?程序一运行就会给static修饰变量分配内存
- 2.修饰全局变量,被static修饰全局变量,作用域会修改,只能在当前文件下使用
与const联合使用
- 我们想让一个全局变量只在当前文件夹下使用,并且不能修改
static NSString * const name = @"name";
extern
- 声明外部全局变量,注意:extern只能用于声明,不能用于定义
- 工作原理:先会去当前文件下查找有没有对应全局变量,如果没有,才会去其他文件查找
一个全局变量,我们在其他的文件夹使用extern声明一下,就可以在其他文件夹下使用了
与const联合使用
- 规定:开发中全局变量不能直接定义在自己的文件中,我们需要创建一个类,之后什么都不要,在.m文件中写上我们声明的全局变量,并且这歌全局变量我们设定为const,之后我们在这个类的.h文件中声明,这样,我们在其他文件想用的时候,直接导入.h文件即可
.h文件
extern NSString * const name = @"name";
.m文件
NSString * const name = @"name";