(四) [OC高效系列]多用类型常量,少用#define预处理命令

1.使用类型常量的优势

  • 包含类型信息
  • 即使重新定义了常量值,编译器也不会产生警告,导致程序中常量值不一致

2.如何定义类型常量值

如果仅仅需要在内部使用,那么在.m文件上方按如下方式定义即可,static与const是必须的,static将此类型常量限定在此.m文件中,即使其他的.m文件中重新定义了该常量,依然对此常量无影响,const 指明不能被改变

static const NSTimeInterval kAnimationDuration = 0.3;

如果是需要在外部使用,则需要在头文件中用extern 关键字将该常量注册到`全局符号表,.m文件中不需要添加static 关键字

//一般全局符号需要加上类名前缀,防止冲突

//.h 声明到全局符号表
extern NSString  *const   YXLoginViewControllerDidSuccessNotification;

//.m 定义值
 NSString *const   YXLoginViewControllerDidSuccessNotification =
 @"YXLoginViewControllerDidSuccessNotification";
```

>3.const *和 *const的区别

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

推荐阅读更多精彩内容