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

关于如何解决这个问题的任何想法?

有什么问题吗

NSString* key = @"EnumValue1";

或者怎么样

#define KEY(k) (@#k)

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