Objective-Cでconstを使ってNSStringの定数を定義する方法について。#define
は問題を起こすことがあるので使わない方がよい。
複数のクラスで共有する場合
ClassA.h
extern NSString * const kMyConstant;
@interface ClassA
//(中略)
@end
ClassA.m
NSString * const kMyConstant = @"my constant string";
@implementation ClassA
// (中略)
@end
ClassB.m
#import "ClassA.h"
@implementation ClassB
- (void)doSomething {
NSLog(@"String Constant: %@", kMyConstant);
}
@end
参考: Referencing a static NSString * const from another class
単一のクラス内でのみ使用する場合
ClassC.m
static NSString * const kMyLocalConstant = @"my local constant string";
@implementation ClassC
- (void)doSomething {
NSLog(@"Local String Constant: %@", kMyLocalConstant);
}
@end