在 #define 值中使用 BOOLEAN 表达式
Using a BOOLEAN expression in a #define value
我通常像这样定义我的常量 #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"];
}
非常感谢任何帮助:)
我猜问题是
#define kII_URL if(kIsLiveEnvironment){@"FirstURL" }else{@"SecondURL"};
你试过了吗:
#define kII_URL ((kIsLiveEnvironment) ? @"FirstURL" : @"SecondURL")
您的代码变为:
NSLog(@"IS Live environment %@ so use url %@",
[IICore isLiveEnvironment],
if([IICore isLiveEnvironment]){@"FirstURL" }else{@"SecondURL"};
);
这就是你出错的原因。
将kII_URL
更改为:
#define kII_URL ((kIsLiveEnvironment) ? @"FirstURL" : @"SecondURL")
我通常像这样定义我的常量 #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"];
}
非常感谢任何帮助:)
我猜问题是
#define kII_URL if(kIsLiveEnvironment){@"FirstURL" }else{@"SecondURL"};
你试过了吗:
#define kII_URL ((kIsLiveEnvironment) ? @"FirstURL" : @"SecondURL")
您的代码变为:
NSLog(@"IS Live environment %@ so use url %@",
[IICore isLiveEnvironment],
if([IICore isLiveEnvironment]){@"FirstURL" }else{@"SecondURL"};
);
这就是你出错的原因。
将kII_URL
更改为:
#define kII_URL ((kIsLiveEnvironment) ? @"FirstURL" : @"SecondURL")