static.const exten 是写在iOS 应用中常用的几个关键字,本篇文章介绍介绍。
static
被 static修饰的便利属于静态变量储存在 (静态数据区) ,该区域的变量在编译时就被分配内存,并且在app运行期间一直存在内存当中,知道app停止运行。所以被static修饰的变量在内存中只存有一份,并且在整个app运行期只被运行一次
用于对变量作用域的限制,限制变量只可在本文件中使用,但是不限制变量的读写(即可读写)
const
被const修饰的右边变量为常量,即不可被修改(只读)
~const NSInteger a = 10 ; // a 不可被修改
NSInteger const a = 10 ; // 与上面效果一样
NSString const *str = @"hi"; //const 修饰的变量是 *str 所以可以修改str指向的地址,不能修改 *str 具体的内容。
NSString *const str = @"hi"; //const修饰的变量是 str 所以可以修改 *str具体的内容 ,不能修改 str 指向的地址。~
extern
static使得变量只对某个特定文件具有可见性,然而使用extern可以使得对所有文件可见。
组合使用
申明全局变量
oc中申明全局变量可以
~//.h文件
extern NSString *const kVAR;;
//.m文件
NSString *const KVAR = @“KVAR”~
当然也可是使用宏来定义全局变量,但是建议这种方法主要一下几点原因:
使用宏的话无法知道常量的类型
在调试的时候,宏使用不方便因为只是进行简单的替换。
静态常量
static 和 const 可以使用 static 和 const 定义只在局部作用的静态常量:比如TableViewCell 的高度等
static const CGFloat kCellHeight = 12;
网友评论