Objective-C中的常量

在Cocoa开发过程中,偏好设置中的键名使用 constant NSString保存。我认为这是一个很好的idea,因为在必要的时候该方式允许我们方便改变常量值,而且,符合将数据和逻辑分离的理念。

疑惑

有没有一种好方法可以让这些常量在整个应用程序中定义一次?我确信有一种简单而聪明的方法,但是现在我的类只是重新定义它们使用的类。

好的建议

创建Constants类

创建一个Constants类,然后,头文件中定义如下内容:

// Constants.h
FOUNDATION_EXPORT NSString *const MyFirstConstant;
FOUNDATION_EXPORT NSString *const MySecondConstant;
//etc.

如果代码不需要其他平台或在C/C++混编环境下运行,可以将上述FOUNDATION_EXPORT替换为extern,即:

// Constants.h
extern NSString *const MyFirstConstant;
extern NSString *const MySecondConstant;
//etc.

可以在任何需要使用常量的地方引用该头文件,或者将该文件引入预编译文件中,如引入PCH文件。

在Constants.m文件中定义如下内容:

// Constants.m
NSString *const MyFirstConstant = @"FirstConstant";
NSString *const MySecondConstant = @"SecondConstant";

应将Constants.m添加到应用程序/框架的target中,以便将其链接到最终产品。

那么,常量的方式与宏定义#define有何不同呢?主要方便阅读,代码规范。

实际使用中推荐使用该方法,具体使用时,可在PCH文件中引入如下代码:

#ifdef __OBJC__
  #import "Constants.h"
#endif

宏定义

#define MyFirstConstant @"prefs_my_constant"

优点:代码中修改常量值后不需要重新编译整个项目即可运行。

总结

使用多个全局变量时,建议使用第一种做法,如果只是在一个文件中使用常量,则建议使用宏定义的方式,在.m文件中定义如下:

#define kNSStringConstant @"Constant NSString"

参考文章

Constants in Objective-C

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jarlen John

谢谢你给我一杯咖啡的温暖

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值