iOS关于全局变量和静态关键字的定义

要点
1.不要使用预处理指令定义常量,这样做定义出来的常量不含信息类型,编译器只是会在编译前据此执行查找与替换操作。即使有人重新定义了常量值,编译器也不会产生警告信息,浙江导致应用程序中的常量值不一致。

2.在.m文件中使用static const 来定义 “只在编译单元内可见的常量(不想暴露给别的引用类文件的全局变量)”由于此类常量不会再全局符号表中,所以无须为期名称加前缀。(只在本文件中显示,即使文件被别的文件引用了,也不会暴露出去)。

static const NSString * str = @"静态关键字,只在本文件中使用,不会被修改且不会暴露给引用者";

3.在希望自己的属性暴露出去的时候 使用extern 关键字 在.h文件中声明,并在.m文件中实现赋值,
这种常量要出现在全局符号表中,所以其名称应加以区分,通常用与之相关的类名做前缀

.h文件中
#import <UIKit/UIKit.h>

extern NSString *const kBaseVCNotifiStr;

//所有Controller的基类
@interface QFTBaseViewController : QMUICommonViewController

@end
-----------------------------------------------------------------------

.m文件中
#import "QFTBaseViewController.h"


NSString *const kBaseVCNotifiStr = @"希望暴露给引用者的信息";

@interface QFTBaseViewController ()
@property (nonatomic, strong) UIButton *navButton;

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