Car*_*rlJ 1 objective-c nsstring c-preprocessor
我有一个问题是创建一个预处理器宏函数,它连接两个字符串并"返回"一个NSString(@"...")值.
这是我尝试过的:
#define ObjectKeyMake(NAME) @"com.test.##NAME"
Run Code Online (Sandbox Code Playgroud)
如果我通过电话打印结果我得到:
NSLog(@"%@", ObjectKeyMake(foo)); // com.test.##NAME
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:如何在预处理器宏中连接2个字符串并"返回"NSString(@"..")?
不,我不能使用,#define ObjectKeyMake(NAME) [@"com.test." stringByAppendingString: NAME]因为我需要一个编译时常量.
Tom*_*ing 12
您可以利用编译器组合彼此相邻的字符串文字这一事实,如下所示:
NSString* greeting = @"Hello, " "world";
Run Code Online (Sandbox Code Playgroud)
宏实现看起来像这样:
#define ObjectKeyMake(NAME) (@"com.test." #NAME)
Run Code Online (Sandbox Code Playgroud)