我以宏的方式定义了一系列字符串常量,如下所示
#define EXT_RESULT_APPID @"appid"
#define EXT_RESULT_ERROR_CODE @"errorcode"
#define EXT_RESULT_PROGRESS @"progress"
...
所有这些常量应该在相同的上下文中使用,所以我想在同一个命名空间中约束它们,我不想让它们全局,就像这个post说。
另一方面,我可以将所有数字常量放在枚举中,但它不适用于字符串。 那我怎么能把这些相关的字符串常量分组呢?
答案 0 :(得分:28)
这是一种方法:
<强> MONExtResult.h 强>
// add __unsafe_unretained if compiling for ARC
struct MONExtResultStruct {
NSString * const AppID;
NSString * const ErrorCode;
NSString * const Progress;
};
extern const struct MONExtResultStruct MONExtResult;
<强> MONExtResult.m 强>
const struct MONExtResultStruct MONExtResult = {
.AppID = @"appid",
.ErrorCode = @"errorcode",
.Progress = @"progress"
};
使用中:
NSString * str = MONExtResult.AppID;
答案 1 :(得分:0)
创建一个头文件,您可以在其中声明字符串并在需要时导入
答案 2 :(得分:0)
您可以创建一个头文件名&#34; Constants.h&#34;。然后,您需要将此头文件导入到要使用这些常量的位置:
#import "Constants.h"
答案 3 :(得分:0)
创建一个标题文件Constants.h
在此文件中添加所有常量。这些可以是您希望在项目的不同类中使用的常量。
#define EXT_RESULT_APPID @"appid"
#define EXT_RESULT_ERROR_CODE @"errorcode"
#define EXT_RESULT_PROGRESS @"progress"
现在,不是在每个类中导入此Constants.h
,而是转到<project name>-Prefix.pch
文件并在此处导入文件。
#import "SCConstants.h"
现在,您可以轻松地在项目的任何类中使用常量。