美文网首页
iOS中的 static . const 和 exten

iOS中的 static . const 和 exten

作者: 小小Q吖 | 来源:发表于2016-06-15 07:39 被阅读1008次

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;

相关文章

网友评论

      本文标题:iOS中的 static . const 和 exten

      本文链接:https://www.haomeiwen.com/subject/vunudttx.html