7907


<http://qiita.com/ytka/items/512468814bf15d937f2b>  
このページを参考にして、グローバルな定数を定義するファイルを作成しました。

MyConstant.h

[code]

    #undef _EXTERN
    #undef _INITIALIZE_AS
    
    #ifdef _DEFINE_GROBAL_CONSTS_
     #define _EXTERN
     #define _INITIALIZE_AS(x) =x
    #else
     #define _EXTERN extern
     #define _INITIALIZE_AS(x)
    #endif
    
    _EXTERN NSString* const kAddMessageNotification _INITIALIZE_AS(@"addMessage");
    
[/code]

MyConstant.m

[code]

    #define _DEFINE_GROBAL_CONSTS_ 1
    #import "RRGConstant.h"
    
[/code]

このファイルで定義した定数は多くのファイルで使用するため、  
Prefix.pchでインポートしました。

[code]

    #import "MyConstant.h"
    
[/code]

すると、MyConstant.mで

[code]

    #define _DEFINE_GROBAL_CONSTS_ 1
    
[/code]

より前にMyConstant.hがインポートされてしまうためか、定数が定義されず、エラーが出ました。  
（Prefix.pchでインポートせず、定数を使用するそれぞれのファイルでインポートした場合には、うまくいきました。）

[code]

    Undefined symbols for architecture arm64:
      "_kAddMessageNotification", referenced from: ...
    
[/code]

この定数ファイルは多くのファイルから利用するので、できればPrefix.pchでインポートしたいのですが、どのようにすれば良いでしょう。


CC BY-SA 3.0
2015-03-14T05:50:20.587
7905
2015-03-14T06:40:44.730
8825
question
objective-c xcode
Objective-Cでグローバル定数を定義したファイルをPrefix.pchでインポートする方法


MyConstant.mの`Compiler Flags`に`-D _DEFINE_GROBAL_CONSTS_=1`を設定してください。

![スクリーンショット](https://i.stack.imgur.com/ecmFf.png)


CC BY-SA 3.0
2015-03-14T06:40:44.730
7907
2015-03-14T06:40:44.730
3639
7905
answer