1-Static
在常用的iOS开发中,static一般有俩方面的作用:修饰局部变量和全局变量
1-1:修饰局部变量
1-1-1:让局部变量只初始化一次;
1-1-2:局部变量在程序中只有一份内存;
1-1-3:并不会改变局部变量的作用域,仅仅是改变了局部变量的生命周期(直到程序结束,这个局部变量才会销毁)。
1-2:修饰全局变量
C语言中的全局变量,任何地方都可以访问。如果想在某个文件中获取全局变量的值,只需要在全局变量前用extern修饰即可,extern是引用变量,且引用变量的值从当前文件到其他文件中查找。因为iOS开发所用的OC语言是基于C语言的,全局变量的作用在iOS中是一样的。
1-2-1:全局变量的作用域仅限于当前文件,不能通过extern来引用。
这个有一个很好的好处就是:即使你在其他地方声明了一样的全局变量,用static修饰后就不会编译报错。
2-Const
通过const修饰的变量,在开发中不能进行修改,相当于常量,并且const只修饰其右边变量的值,且该值在开发中不能修改。
而宏定义修饰的变量在开发中也不能修改,也是相当于常量。但是苹果官方推荐的写法是用const修饰而不是宏定义,是因为全局变量内存中只有一份,而宏定义,在项目中使用的,会有多个临时的内存(直到程序结束)。并且为了防止定义的全局变量被其他文件引用,经常是用static和const联合使用,例如:
static 类型 const 常量名 = 初始化值