答えは、定数のタイプによって異なります。int
またはのみが必要な場合は、double
プリプロセッサと#define CONST 123
構文を使用できます。ただし、Objective C クラスの場合は、さらに多くの作業を行う必要があります。
具体的には、クラス メソッドまたは独立関数の背後にある定数を非表示にする必要があります。また、そのメソッドまたは関数のプロトタイプをヘッダー ファイルに追加し、関数スコープの静的変数を提供して定数を格納し、それを初期化するコードを追加する必要があります。
シンプルな を使用した例を次に示しNSDictionary
ます。
ヘッダー: MyConstants.h
@interface MyConstants
+(NSDictionary*)getConstDictionary;
@end
実装: MyConstants.m
+(NSDictionary*)getConstDictionary {
static NSDictionary *inst = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
inst = @{
@"key1": @"value1",
@"key2": @"value2",
@"key3": @"value3"
};
});
return inst;
}
使用法:
NSString *val = [[MyConstants getConstDictionary] objectForKey:@"key2"];