iphone - Initialiser 元素不是编译时常量

标签 iphone ios ios5 ios4

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

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

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

Initialiser element is not a compile time constant

我该如何调试?

最佳答案

问题在于 NSLocalizedString 是一个根据语言返回不同值的函数。它不是一个常数,只有在系统运行时才能计算出来。

相反,使用:

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

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

关于iphone - Initialiser 元素不是编译时常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12170728/

相关文章:

ios - 使用多个 View Controller 堆栈处理方向

ios - 如何在 iOS 上运行 Tensorflow 对象检测

iphone - 如何将日期中的年份更改为当前年份?

ios - 呈现模态视图 Controller 的延迟

ios - Swift 中 UIImage 的淡入淡出动画

ios - 从另一个 ViewController 呈现 Storyboard ViewController

xcode - iOS : NSXMLParser get attribute

xcode - 当附件为UITableViewCellAccessoryCheckmark时如何在UITableViewCell中居中放置文本

ios - 使用 SSKeychain 存储在钥匙串(keychain)中的用户名是否总是出现在第 4 个索引中?

iPhone - CGBitmapContextCreateImage 泄漏,还有其他人遇到这个问题吗?