Initialiser元素不是编译时常量

时间:2012-08-29 04:06:37

标签: iphone ios ios5 ios4

在我的常量文件中,我已包含以下行

NSString * ALERT_OK = NSLocalizedString(@"Ok",@"Ok");

在此之后,当我尝试编译时,我收到以下错误

Initialiser element is not a compile time constant

请帮帮我

1 个答案:

答案 0 :(得分:5)

问题是NSLocalizedString是一个函数,它根据语言返回不同的值。在系统运行之前,它不是常数,可以计算出来。

相反,请使用:

 #define ALERT_OK NSLocalizedString(@"Ok",@"Ok");

现在它将简单地用函数替换ALERT_OK,你会没事的。 (请注意,您应该对所有全局值使用某种前缀,这样您就不会意外地创建在其他地方使用相同名称的内容。)