3

私の定数ファイルには、以下の行が含まれています

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

この後、コンパイルしようとすると、以下のエラーが発生します

Initialiser element is not a compile time constant

どうすればこれをデバッグできますか?

4

1 に答える 1

5

問題は、NSLocalizedStringが、言語に応じて異なる値を返す関数であるということです。これは、システムが実行されるまで把握できる定数ではありません。

代わりに、以下を使用してください。

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

そして、ALERT_OKを関数に置き換えるだけで、問題はありません。(他の場所で使用されている同じ名前の何かを誤って作成しないように、このようなすべてのグローバル値に何らかのプレフィックスを使用する必要があることに注意してください。)

于 2012-08-29T04:10:03.387 に答える