Objective-Cの定数 質問する

Objective-Cの定数 質問する

私は開発中ですココアアプリケーションでは、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]

おすすめ記事