Objective-CでNSStringの定数を定義する

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
Pocket
LINEで送る
LinkedIn にシェア