2017-03-06 60 views
0

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

static NSString *[email protected]"http://%@/api/Home/editProfile/ios/1"; 


#define getServerURl(url,selectdServer)[[NSString stringWithFormat:@"%@",url] stringByReplacingOccurrencesOfString:@"%@" 
withString:([selectdServer isEqualToString:@"live"] [email protected]"live_ip/folder_name":@"demo_ip/folder_name")] 
  1. 我选择了 'demo_ip' 选项登录。
  2. 退出。
  3. 现在选择“实时”选项。 这里的问题是demo_ip在某些地方被调用。请帮助。

感谢

回答

1

你可以尝试这样的:

#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 

NSString *url =[[NSString stringWithFormat:@"%@",API_URL] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
1

有没有与宏观的问题,有可能一直是个问题与您传递参数,当您调用getServerURl(...)

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

欲了解更多信息:在您的源文件甚至编译之前,宏由预处理器的值替换。所以你不可能在运行时改变宏的值。

enter image description here