具有常量的类

时间:2013-11-07 16:23:21

标签: objective-c class static constants

我是目标c的新手,所以这个问题很可能是愚蠢的。我需要一个只有常量的类。假设我有许多常量定义如下:

uint8_t const ONE = 1

在我的应用程序中有20个常量,我想从许多地方(类)访问它的值。在C#中,我会使用带有常量的类并静态访问它们:

Constants.ONE;

但在目标C中,这样做对我来说是一个问题。我知道我可以将常量放到某个头文件中,然后将其导入类,但存在重复的风险。

例如a有一个A,B,C类。在类AI导入类B和C中。每个类都需要访问常量但是我不能将头文件导入到每个类中(如果类B有常量和A,常数是重复的。)

1 个答案:

答案 0 :(得分:1)

Objective-C是C的超集,这意味着您可以在代码中使用任何C功能。现在IIRC C不直接支持structs中的常量,但你可以定义一个常量struct并通过C99指定的初始化列表直接初始化它(只是为了保持可读性),如:

struct constants
{
  const int INT_VALUE;
  const char* STRING_VALUE;
} const Constants = {
  .INT_VALUE = 10,
  .STRING_VALUE = "Foobar"
};

...
Constants.INT_VALUE
...