【问题标题】:objC Preprocessor NSString MacroobjC 预处理器 NSString 宏
【发布时间】:2012-06-18 08:19:54
【问题描述】:

我在创建一个预处理器宏函数时遇到问题,该函数连接两个字符串并“返回”NSString (@"...") 值。

这是我尝试过的:

#define ObjectKeyMake(NAME) @"com.test.##NAME"

如果我打印我得到的调用结果:

NSLog(@"%@", ObjectKeyMake(foo)); // com.test.##NAME

所以我的问题是:如何在预处理器宏中连接 2 个字符串并“返回”一个 NSString (@"..")?

不,我不能使用#define ObjectKeyMake(NAME) [@"com.test." stringByAppendingString: NAME],因为我需要一个编译时常量。

【问题讨论】:

    标签: objective-c nsstring c-preprocessor


    【解决方案1】:

    您可以利用编译器组合彼此相邻的字符串文字这一事实,如下所示:

    NSString* greeting = @"Hello, " "world";
    

    宏实现如下所示:

    #define ObjectKeyMake(NAME) (@"com.test." #NAME)
    

    【讨论】:

      【解决方案2】:
      #define ObjectKeyMake(NAME) @"com.test."#NAME
      

      【讨论】:

        猜你喜欢
        • 2015-04-15
        • 2015-07-31
        • 1970-01-01
        • 2010-09-19
        • 2020-02-09
        • 1970-01-01
        • 2011-01-26
        • 2013-05-13
        相关资源
        最近更新 更多