extern static const 以及的全局变量

  • 在项目中定义一个全局变量,默认是整个项目文件都可使用的,其实默认是extern修饰, 如果想在别的文件使用这个全局变量,就得先引用 就得用extern关键字

    • 例如 在 ViewController文件定义一个全局变量 str
屏幕快照 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";


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容