2017-03-06 9 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(...)を呼び出すときに渡すパラメータで

ライブが必要な場合は、getServerURl(...)の2番目のパラメータに 'live'を渡してください!条件付きで 'ライブ'小文字の値を比較しているためです。

詳細情報:マクロは、ソースファイルがコンパイルされる前に、値によってプリプロセッサに置き換えられます。したがって、実行時にマクロの値を変更する方法はありません。

enter image description here

関連する問題