Dav*_*ong 6 c constants objective-c
首先,我已经看到了这个问题并理解为什么以下代码不起作用.那不是我的问题.
我有一个常数,它被宣布为;
//Constants.h
extern NSString * const MyConstant;
//Constants.m
NSString * const MyConstant = @"MyConstant";
Run Code Online (Sandbox Code Playgroud)
但是,在某些情况下,让常量具有更具描述性的名称更有用MyReallySpecificConstant.我希望这样做:
//SpecificConstants.h
extern NSString * const MyReallySpecificConstant;
//SpecificConstants.m
#import "Constants.h"
NSString * const MyReallySpecificConstant = MyConstant;
Run Code Online (Sandbox Code Playgroud)
显然我不能这样做(这在上面的链接问题中有解释).
我的问题是:
如何(除了类似的东西#define MyReallySpecificConstant MyConstant)我可以在多个名称下提供一个常量?
通常,编译器会将相同的字符串常量折叠到相同的字符串中,除非您告诉它不要.即使您无法使用另一个常量初始化一个常量,但使用相同的值初始化它们将具有相同的净效果.
//Constants.h
extern NSString * const MyConstant;
extern NSString * const MyOtherConstant;
//Constants.m
#define MyConstantValue "MyConstant"
NSString * const MyConstant = @MyConstantValue;
NSString * const MyOtherConstant = @MyConstantValue;
Run Code Online (Sandbox Code Playgroud)
您将#define隐藏在一个源文件中而不是标题中.您只需在一个地方更改值.一个常量有两个名称.当然,在多个文件中定义常量的场景中,您必须可以访问这些源文件的#define.
| 归档时间: |
|
| 查看次数: |
265 次 |
| 最近记录: |