static修饰符妙用:
什么情况下用static修饰全局变量?就是有类方法时!因为只有对象才能调用成员变量,类无法调用成员变量,static作用就是替代对象的成员变量,将一个对象保存起来。
//static修饰,防止本文件全局变量被外面文件用extern引用
为区别于局部变量(包括方法内的static方法修饰的变量),static 在方法外定义的全局变量,要加下划线 _。类似于成员变量。整个.m文件内都可访问。
static 修饰局部变量,表示该局部变量不随方法调用结束而销毁,因为static就在静态存储区占用了一个空间,来永久保存值 。
但由于修饰的是局部变量,所以该变量不能被方法外调用。
const 常量修饰符:
设置全局常量,用const修饰符,不要用宏定义,因为宏是替换。程序运行中,常量被调用N次,宏方法就创建N个地址放常量,而const常量地址永远就是那固定一个。
const修饰的常量要放在.m文件中,不能放在.pch,.h文件内,因为const修饰的常量不能重复定义。而.pch及.h文件都会被其他文件加载过去,造成重复加载错误。
通过extern 修饰符,能引用别人的.m中static修饰的常量。
所以,可以将定义常量放在const.m文件中,将引用放在const.h文件中。谁要用,就import .h文件。