2012-05-21 73 views
2

我正在嘗試使用'#'和'##'運算符創建一個Objective-C字符串。我寫了下面的宏:使用字符串化創建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編譯器。

回答

2

Any idea on how to fix this?

這有什麼錯

NSString* key = @"EnumValue1"; 

或者怎麼樣

#define KEY(k) (@#k) 

NSString* key = KEY(EnumValue1); 
+0

沒有錯。我想知道爲什麼我在嘗試連接時遇到這個錯誤,但是'#define KEY(k)(@#k)'做了這個訣竅。謝謝。 –