Objective-C:如何分组一系列的string常量?

我以macros观的方式定义了一系列的string常量,

#define EXT_RESULT_APPID @"appid" #define EXT_RESULT_ERROR_CODE @"errorcode" #define EXT_RESULT_PROGRESS @"progress" ... 

所有这些常量都应该用在同一个上下文中,所以我想把它们限制在同一个命名空间中,我不想让它们成为全局的 ,就像这个post所说的那样。

另一方面,我可以把所有的数字常量放在一个枚举中,但不适用于string。 那我怎么能把这些相关的string常量分组呢?

这里有一个方法:

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; 

创build一个头文件,在其中声明您的string并在需要时导入它

您可以创build一个头文件名称“Constants.h”。 那么你需要导入这个头文件你想要使用这些常量,如:

 #import "Constants.h" 

创build一个头文件说Constants.h

在这个文件中添加所有的常量。 这些可以是你想在你的项目的不同类中使用的常量。

 #define EXT_RESULT_APPID @"appid" #define EXT_RESULT_ERROR_CODE @"errorcode" #define EXT_RESULT_PROGRESS @"progress" 

现在,不要在每个类中导入这个Constants.h ,而是在<project name>-Prefix.pch文件中导入File。

 #import "SCConstants.h" 

现在你可以在项目的任何一个类中使用常量来缓解这个问题。