我有一个问题是创建一个预处理器宏函数,它连接两个字符串并“返回”一个NSString
(@“...”)值。
以下是我的尝试:
#define ObjectKeyMake(NAME) @"com.test.##NAME"
如果我通过电话打印结果我得到:
NSLog(@"%@", ObjectKeyMake(foo)); // com.test.##NAME
所以我的问题是:如何在预处理器宏中连接2个字符串并“返回”NSString(@“..”)?
并且我不能使用#define ObjectKeyMake(NAME) [@"com.test." stringByAppendingString: NAME]
,因为我需要一个编译时常量。
答案 0 :(得分:11)
您可以利用编译器组合彼此相邻的字符串文字这一事实,如下所示:
NSString* greeting = @"Hello, " "world";
宏实现如下所示:
#define ObjectKeyMake(NAME) (@"com.test." #NAME)
答案 1 :(得分:-1)
#define ObjectKeyMake(NAME) @"com.test."#NAME