-
在项目中定义一个全局变量,默认是整个项目文件都可使用的,其实默认是extern修饰, 如果想在别的文件使用这个全局变量,就得先引用 就得用extern关键字
- 例如 在 ViewController文件定义一个全局变量
str
- 例如 在 ViewController文件定义一个全局变量
屏幕快照 2016-07-29 上午11.23.06.png
- 这是后想在HTButton中使用
屏幕快照 2016-07-29 上午11.24.53.png
- 注意:如果前面定义
str
的时候前面用static修饰的话 ,那么就会报错 也就是- static关键字 代表只可以在本文件中使用
const
其实可以理解苹果是来用它来取代宏的
保证一些变量是不可变的
-
使用场景
- 下面两者的区别
NSString * const abc = @"123";
NSString const *abc = @"123";
-
如果想要了解区别, 就得像了解指针的本质
- abc 代表一个指针变量 保存的是变量的地址值
- *abc 代表所保存地址值对应的存储空间
那么就可以理解上面两者的区别
NSString * const abc = @"123";
- const这里修饰的abc,那么就代表abc指向不可变,也就是其内部保存的地址值不变的,不可以指向别的存储空间
NSString const *abc = @"123";
- const修饰的是*abc,也就是说abc所指向的内存空间中的值不可以改变 ,但是abc可以指向可以改变
开发中常用定义全局的变量通常都写在一个.h跟一个.m当中
- 首先, 我们创建一个继承UIView的类,Global
- Global.h
#import <UIKit/UIKit.h>
#ifdef __cplusplus
#define UIKIT_EXTERN extern "C" __attribute__((visibility ("default")))
#else
#define UIKIT_EXTERN extern __attribute__((visibility ("default")))
#endif
// testGloBalValue全局变量
UIKIT_EXTERN NSString * const testGloBalValue;
- Global.m
#import "Global.h"
NSString * const testGloBalValue = @"test";