Objective-Cがオワコン化する前にちょっとためになるかもしれないやつを書いておく。
iOSアプリ内で使う定数を1ファイルでまとめて管理するいい方法がないかを調べたときにどこかで見つけたもので、マクロの有無で宣言と定義を分けるという方法があった。
この方法を使うことで変数宣言と定義を1ファイルにまとめることができるようになった。変更箇所が一箇所で済むので少し便利になる。
1// Constants.h
2#undef _EXTERN
3#undef _INITIALIZE_AS
4#ifdef XOYIP_DEFINE_GLOBALS
5#define _EXTERN
6#define _INITIALIZE_AS(x) =x
7#else
8#if defined(__cplusplus)
9#define _EXTERN extern "C"
10#else
11#define _EXTERN extern
12#endif
13#define _INITIALIZE_AS(x)
14#endif
15
16_EXTERN NSString *const kAccessToken _INITIALIZE_AS(@"YOUR_ACCESS_TOKEN");
17_EXTERN NSString *const ...
18_EXTERN NSString *const ...
1// Constants.m
2#define XOYIP_DEFINE_GLOBALS
3#import "Constant.h"