3

'#'および'##'演算子を使用してObjective-C文字列を作成しようとしています。私は次のマクロを書きました:

#define OBJCKEY(p, s) p ## s
#define KEY(k) OBJCKEY(@, #k)

次のように関数で使用しようとしています。

NSString *key = KEY(EnumValue1);

しかし、Xcodeは次のエラーを報告します:

Pasting formed '@"EnumValue1"', an invalid preprocessing token

これを修正する方法について何かアイデアはありますか?

注:私はLLVMコンパイラーを使用しています。

4

1 に答える 1

3

Any idea on how to fix this?

Is there anything wrong with

NSString* key = @"EnumValue1";

Or how about

#define KEY(k) (@#k)

NSString* key = KEY(EnumValue1);
于 2012-05-21T12:56:49.490 に答える