iphone - Changing base url depending on preprocessor macro value -


i have project few schemes, 1 ea, staged, , production.

i want able set base url based on build configuration running.

#if defined production #define base_url [nsurl urlwithstring:@"https://example.production.com/"]  #elif defined staged #define base_url [nsurl urlwithstring:@"http://example.staged.com/"]  #else #define base_url [nsurl urlwithstring:@"https://example.ea.com/"] #endif 

is there way set preprocessor macros in order define values of production , staged, i'm guessing it's somewhere in build settings of target. , best way it?

i store urls in nsobject class (aptly named urlhub) class methods so;

+(nsstring *)login {     nsstring *url;      if (developmentmode) {         url = @"https://dev.mycoolwebservice/api/login";     } else {         url = @"https://mycoolwebservice/api/login";     }      return url; } 

then wherever need use url can grab easily;

#import "urlhub.h"  nsstring *url = [urlhub login]; 

this approach makes super simple update urls throught entire app since stored in same place.

in example switch on development urls need flip 1 bool , every url app-wide changes. ;)


Comments

Popular posts from this blog

java - Jmockit String final length method mocking Issue -

asp.net - Razor Page Hosted on IIS 6 Fails Every Morning -

c++ - wxwidget compiling on windows command prompt -