3

是否有一个可以在编译时返回唯一字符串的宏,以便它可以用作objective-c 类的名称?

我在想类似的东西:

#define my_macro(params) \
@implementation my_macro_function_giving_unique_string_(MyTrickyRuntimeExtension) \
  //Do stuff \
@end \
4

2 回答 2

1

在 C++ 中,它可以是:

#define UNIQUE_NAME2(LINE) Class##LINE
#define UNIQUE_NAME1(LINE) UNIQUE_NAME2(LINE)
#define UNIQUE_NAME UNIQUE_NAME1(__LINE__)

并将其用作:

class UNIQUE_NAME {};

[注意:每行声明 1 个类,不要希望在任何地方前向声明它 :)]

于 2013-01-18T11:31:56.540 回答
1

__COUNTER__Visual Studio 中有一个预定义的宏可以帮助

我使用了 iammilind建议

#define UNIQUE2(param) YourClassBaseNames##param
#define UNIQUE1(param) UNIQUE2(param)
#define UNIQUE UNIQUE1(__COUNTER__)

class UNIQUE
{

};

class UNIQUE
{

};

counter - 返回新的计数 ech 时间

参考: http: //msdn.microsoft.com/en-us/library/b0084kay (v=vs.80).aspx

它也可用于 GCC

于 2013-01-18T11:34:48.100 回答