2013-05-14 11 views
6

Próbuję zorganizować wszystkie moje API URL w jednym pliku, co robie to stworzyłem plik nagłówka i dodaje się następujące wierszeJak zorganizować API URL w Objective-C

#define LOGIN_URL   @"http://192.168.100.100/api/login" 
#define SIGNUP_URL   @"http://192.168.100.100/api/signup" 
#define PRODUCTS_URL  @"http://192.168.100.100/api/products" 
#define EMPLOYEE_URL  @"http://192.168.100.100/api/employee" 
#define GET_PRODUCTS_URL @"http://192.168.100.100/api/getproducts" 
#define CLIENTS_URL   @"http://192.168.100.100/api/clients" 

Tutaj base url jest stale aktualizowany, zawsze muszę znaleźć i zastąpić adres IP. Czy istnieją lepsze sposoby na uporządkowanie adresów URL interfejsu API?

+0

Oto podobne pytanie z dobrym soluti ons. http://stackoverflow.com/questions/16448896/changing-base-url-depending-on-preprocessor-maco-value – VGruenhagen

+0

Zobacz: [Utwórz listę zmiennych stałych z innych stałych] (http: // stackoverflow .com/q/10055187) –

Odpowiedz

13

Hey można organizować wszystkie API URL za pomocą następującego kodu

#define SITE_URL(url) @"http://192.168.100.100/api" url 

#define LOGIN_URL   SITE_URL("/login") 
#define SIGNUP_URL   SITE_URL("/signup") 

#define PRODUCTS_URL  SITE_URL("/products") 
#define EMPLOYEE_URL  SITE_URL("/employee") 
#define GET_PRODUCTS_URL SITE_URL("/getproducts") 
#define CLIENTS_URL   SITE_URL("/clients") 
+0

/api/jest zbędny tutaj – Devfly

+1

@Devfly Dzięki, aktualizacja odpowiedzi, błąd literowy – icodebuster

+2

Położyłbym go z powrotem tak, jak było. Adres IP musi być łatwo zmieniony (w przypadku pracy awaryjnej). Kogo to obchodzi, jeśli części adresu URL są podobne? –

6

Ja osobiście lubię używać stałych ponad #define

Oto jak to zrobić, co próbujesz zrobić.

MyAppConstants.h

extern NSString * const kLOGIN_URL; 
extern NSString * const kSIGNUP_URL; 
extern NSString * const kPRODUCTS_URL; 
extern NSString * const kEMPLOYEE_URL; 
extern NSString * const kGET_PRODUCTS_URL; 
extern NSString * const kCLIENTS_URL; 

MyAppConstants.m

NSString * const kLOGIN_URL   = @"/login" 
NSString * const kSIGNUP_URL   = @"/signup" 
NSString * const kPRODUCTS_URL  = @"/products" 
NSString * const kEMPLOYEE_URL  = @"/employee" 
NSString * const kGET_PRODUCTS_URL = @"/getproducts" 
NSString * const kCLIENTS_URL   = @"/clients" 

Wtedy kiedy używać stałych chciałbym zrobić coś takiego ...

NSURL *loginURL = [NSURL URLWithString:[baseUrl stringByAppendingString:kLOGIN_URL]]; 
+0

Czy jest jakiś problem przy użyciu #define? – icodebuster

+0

Myślę, że tak, sprawdź ten post @icodebuster http://stackoverflow.com/questions/1674032/static-const-vs-define-in-c –

+0

Dzięki za link – icodebuster

Powiązane problemy