首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >宏保留静态值。

宏保留静态值。
EN

Stack Overflow用户
提问于 2017-03-06 12:14:58
回答 2查看 44关注 0票数 0

下面是我用来选择IP的宏。弹出一个警报视图,用户尝试登录,其基础是将相应的IP设置为从服务器获取数据。

代码语言:javascript
运行
复制
static NSString *updateProfileDetails_URL=@"http://%@/api/Home/editProfile/ios/1";


#define getServerURl(url,selectdServer)[[NSString stringWithFormat:@"%@",url] stringByReplacingOccurrencesOfString:@"%@"
withString:([selectdServer isEqualToString:@"live"] ?@"live_ip/folder_name":@"demo_ip/folder_name" )]
  1. 我选择了'demo_ip‘选项登录。
  2. 注销了。
  3. 现在选择“现场”选项。这里的问题是demo_ip在某些地方被调用。帮帮忙吧。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-06 12:39:36

你可以这样做:

代码语言:javascript
运行
复制
#define USE_TEST_URL 1   // use 1 for test and 0 for live

#if USE_TEST_URL  // define test urls here

#define API_URL @"http://...<TEST URL>"

#else  // define live urls here

#define API_URL @"http://... <LIVE URL>"

#endif

代码语言:javascript
运行
复制
NSString *url =[[NSString stringWithFormat:@"%@",API_URL] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
票数 1
EN

Stack Overflow用户

发布于 2017-03-06 12:47:12

宏没有问题,调用getServerURl(.)时,传递参数可能有问题。

当您需要live时,请确保在getServerURl(.)的第二个参数中传递'live‘!因为您在有条件地比较“实时”小写值。

有关更多信息:宏在源文件编译之前就被预处理程序替换为它们的值。因此,您不可能在运行时更改宏的值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42625426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档