1:staticspa
2.修饰全局变量code
2:extern生命周期
代码演示:内存
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event { [super touchesBegan:touches withEvent:event]; // 这种的话,每次都会从新初始化,因此打印的都是1 int i = 0; i++; NSLog(@"i=%d",i); // 使用static修饰的话。只会初始化一次,并且是跟应用程序有关,不会由于这个代码块结束就结束的,如: static int j = 0; j++; NSLog(@"j=%d",j); // 怎样验证何时分配内存? // 能够在上面两个地方打个断点,你会发现j那里直接跳过,也就是说初始化的时候不是在这里 }
- (void)viewDidLoad { [super viewDidLoad]; // 定义 int b = 3; // 只能声明,不能定义 //extern int a = 3; }
3:static 与const 联合使用作用域
4:ertern 与 const 联合使用it
#import <Foundation/Foundation.h> // XJKIT #ifdef __cplusplus #define XJKIT_EXTERN extern "C" __attribute__((visibility ("default"))) #else #define XJKIT_EXTERN extern __attribute__((visibility ("default"))) #endif XJKIT_EXTERN NSString * const discover_name;
#import "GlobeConst.h" // 定义整个项目中全局变量 /***************发现*************/ NSString * const discover_name = @"name"; /***************首页*************/ NSString * const home_name = @"name";
3.使用:在哪里使用,导入都文件便可,便可调用全局的变量io
意见反馈邮件:1415429879@qq.com
欢迎大家的阅读和赞扬、谢谢!event