我通常定义我的常量#define kIamAconstant
,我的api端点就像这样的常量。现在我的项目要求我有一个切换,在两个不同的端点之间进行切换以进行测试。我有成千上万行代码,而不是通过所有代码并更改它,我想知道有没有办法在常量中使用布尔表达式。我尝试了这个(下面)并记录它,但当我尝试登录时它会显示Expected expression
。
#define kIsLiveEnvironment [IICore isLiveEnvironment]
#define kII_URL if(kIsLiveEnvironment){@"FirstURL" }else{@"SecondURL"};
然后在我的视图控制器中我尝试记录这个:
NSLog(@"IS Live environment %@ so use url %@",kIsLiveEnvironment,kII_URL);
IICore isLiveEnvironment
如下:
+(void)isLiveEnvironment{
[[NSUserDefaults standardUserDefaults] boolForKey:@"isLive"];
}
非常感谢任何帮助:)
答案 0 :(得分:2)
您的代码变为:
NSLog(@"IS Live environment %@ so use url %@",
[IICore isLiveEnvironment],
if([IICore isLiveEnvironment]){@"FirstURL" }else{@"SecondURL"};
);
这就是你有错误的原因。
将kII_URL
更改为:
#define kII_URL ((kIsLiveEnvironment) ? @"FirstURL" : @"SecondURL")
答案 1 :(得分:1)
我猜问题是
#define kII_URL if(kIsLiveEnvironment){@"FirstURL" }else{@"SecondURL"};
你有没有尝试过:
#define kII_URL ((kIsLiveEnvironment) ? @"FirstURL" : @"SecondURL")