【问题标题】:Function that returns #define value返回#define值的函数
【发布时间】:2013-02-04 18:09:48
【问题描述】:

这可能是一种奇怪的编码方式,但我仍在尝试这样做。

我有几个定义:

#define kVar1 @"bla bla"
#define kVar2 @"wahey"
#define kVar3 @"Unicorn"

在一个方法中,我想调用一个返回这些 kVar 之一的函数。 类似的东西

    -(void)method {

    int i = 1 + arc4random() %10;   
unicorn.text = [self getVarValue:i];

    }

我想做getVarValue函数,问题是我不知道怎么做, 也不知道在谷歌中搜索什么关键字,因为我不知道 这东西叫什么。

-(????)getVarValue:(int) i {

   switch(i) {
      case 1: return kVar1; break;
      case 2: return kVar2; break;
      case 3: return kVar3; break;
      default: return kVar1; break;

    }

}

在那个“???”里面放什么 这样的事情还存在吗?谢谢

【问题讨论】:

  • 记住#defines 完全被预处理器吸收了。所有文本替换都是在真正的编译器运行时完成的。因此,您的代码与您完成 case 1: return @"bla bla"; break; 等的代码相同。

标签: xcode function methods c-preprocessor


【解决方案1】:

它是一个指向NSString 的指针。你的签名应该看起来像-(NSString *)getVarValue:(int) i

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-18
    • 2010-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-28
    • 1970-01-01
    相关资源
    最近更新 更多