2013-05-14 5 views
6

Ich versuche organisieren all meine API-URL in einer einzigen Datei zu organisieren, , was ich tue, ist ich eine Header-Datei erstellt und hinzugefügt, um die folgenden ZeilenWie die API URL der in 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" 

Hier ist die base urlhttp://192.168.100.100/ die sich ständig ändern wird, ich muss immer die IP-Adresse finden und ersetzen. Gibt es bessere Möglichkeiten, API URLs zu organisieren?

+0

hier ein ähnliche Frage mit guten soluti ons. http://stackoverflow.com/questions/16448896/changing-base-url-depending-on-processor-macro-value – VGruenhagen

+0

Siehe: [Erstellen Sie eine Liste der Konstanten Variable aus anderen Konstanten] (http: // stackoverflow .com/q/10055187) –

Antwort

13

Hey Sie, indem Sie den folgenden Code alle API URL der

#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/ist hier überflüssig – Devfly

+1

@Devfly Danke, Update Antwort, Tippfehler – icodebuster

+2

Ich würde es zurück, wie es war. Die IP-Adresse muss leicht geändert werden (für Failover). Wen interessiert es, wenn Teile der URL ähnlich sind? –

6

Ich mag persönlich Konstanten über #define

Hier verwenden kann organisieren, wie ich tun würde, was Sie zu tun versuchen.

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" 

Dann, wenn ich die Konstanten verwenden möchte ich etwas tun ...

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

Gibt es ein Problem bei der Verwendung von #define? – icodebuster

+0

Ich denke schon, sieh dir diesen Beitrag an @icodebuster http://stackoverflow.com/questions/1674032/static-const-vs-define-in-c –

+0

Danke für den Link – icodebuster

Verwandte Themen