【发布时间】: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