我有一个很大的常量(一个NSString值为10^6)。由于它的大小,我想在源文件的末尾声明它(所以我不必在每次编辑代码时都滚动它)。也因为它的大小,我希望它是一个常量,所以我可以在编译时加载它而不是运行时。另外,因为我不希望它可以被外部用户访问,所以我不想在头文件中声明它为extern。目标C中的大隐藏常量
我把它声明为一个常量,在实现文件中使用下面的代码,但它给了我一个“使用未声明的标识符'hugeConstantString'”,如果我将它移过实现的@end(出于显而易见的原因)。
NSString *const hugeConstantString = @"a_whooooooole_lotta_characters";
我检查了这一点:Constants in Objective-C但它并没有告诉我什么我不知道的。也许我的大脑被炸了,但是:有没有什么方法可以在我的实现后定义这个巨大的常量,并且仍然可以访问?或者,如果我在另一个头文件中声明并导入它,那么其他人是否可以访问它?
谢谢!
我正在发布类似的东西;注意原始海报:只要声明(在发布的示例中位于 - (id)init之上)对于那些代码段是可见的,那么hugeConstantString__的实际定义可以放在任何你喜欢的地方,甚至超过@end需要它。 – Tommy 2011-03-30 17:09:02
我给了Moshe +1,因为这是最干净的方式。我只是提供了一个类似于原始问题的选项。尽管如此,它绝对是一种选择。 – Joe 2011-03-30 17:12:15
@Joe - 感谢upvote!这是做到这一点的一种方式,但是我想知道整个包装类的作用是什么,只需一行'#define'就足够了。 – Moshe 2011-03-30 17:14:08