10

我以宏的方式定义了一系列字符串常量,如下所示,

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

所有这些常量都应该在相同的上下文中使用,所以我想将它们限制在同一个命名空间中,并且我不想让它们成为 global,就像这篇文章所说的那样。

另一方面,我可以将所有数字常量放在一个枚举中,但它不适用于字符串。那么我该如何对这些相关的字符串常量进行分组呢?

4

4 回答 4

29

这是一种方法:

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;
于 2012-04-25T10:04:24.677 回答
0

创建一个头文件,在其中声明字符串并在需要时将其导入

于 2012-04-25T09:31:10.820 回答
0

您可以创建一个名为“Constants.h”的头文件。然后你需要在你想使用这些常量的地方导入这个头文件,比如:

#import "Constants.h"
于 2012-04-25T09:45:29.247 回答
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"

现在您可以轻松地在项目的任何类中使用常量。

于 2012-04-25T10:18:26.260 回答