私は開発中ですココアアプリケーションでは、NSString
設定のキー名を保存する方法として定数を使用しています。
必要に応じてキーを簡単に変更できるため、これは良いアイデアだと理解しています。
さらに、これは「データとロジックを分離する」という全体的な概念です。
とにかく、これらの定数をアプリケーション全体に対して一度定義する良い方法はありますか?
簡単でインテリジェントな方法があるはずですが、現時点では私のクラスは使用するものを再定義するだけです。
ベストアンサー1
次のようなヘッダーファイルを作成する必要があります。
// Constants.h
FOUNDATION_EXPORT NSString *const MyFirstConstant;
FOUNDATION_EXPORT NSString *const MySecondConstant;
//etc.
(コードが C/C++ の混合環境や他のプラットフォームで使用されない場合は、extern
の代わりにを使用できます。)FOUNDATION_EXPORT
このファイルは、定数を使用する各ファイル、またはプロジェクトのプリコンパイル済みヘッダーに含めることができます。
これらの定数は次のようなファイルで定義します.m
。
// Constants.m
NSString *const MyFirstConstant = @"FirstConstant";
NSString *const MySecondConstant = @"SecondConstant";
Constants.m
最終製品にリンクされるように、アプリケーション/フレームワークのターゲットに追加する必要があります。
'd 定数の代わりに文字列定数を使用する利点は、文字列比較 ( ) よりもはるかに高速な#define
ポインタ比較 ( ) を使用して等価性をテストできることです(私の意見では、読みやすくなります)。stringInstance == MyFirstConstant
[stringInstance isEqualToString:MyFirstConstant]