私は次の典型的なパラダイムに精通しています。
//.h
extern const int myInt;
//.c, .m, .cpp, what have you
const int myInt = 55;
しかし、それを.h
ファイルに入れて、ライブラリや実装ファイルにアクセスできない他のインスタンスで使用する方法が必要です。
たとえば、次のようにXcodeプロジェクトの.h
ファイルにNSString
定数を追加しようとしています。
static NSString *const myString = @"my_string";
ただし、myString
を使用しようとすると、エラーが発生します
イニシャライザ要素はコンパイル時定数ではありません
myString
で、適切にインスタンス化されていないことを示します。 C++またはObjecitve-Cヘッダーファイルでコンパイル時定数をどのように宣言しますか?
C++では、const
が明示的に宣言されていない限り、extern
オブジェクトには内部リンケージがあるため、次のようなヘッダーファイルに定義を入れることに問題はありません。
const int myInt = 55;
この定義と最初の宣言により、myInt
は、配列の境界などの整数定数式として使用できます。
ObjectiveCには答えられません。