Soy nuevo en Objective-C. Básicamente, quiero almacenar un conjunto de URL de punto final como cadenas para su uso en mi aplicación, pero necesito un dominio diferente en función de si la aplicación está en modo DEPURADOR o no. Pensé que podría ser útil usar un archivo de cabecera (Common.h
por ejemplo) con unos simples define así:Cómo # #define un NSString para uso global?
#ifdef DEBUG
#define kAPIEndpointHost @"http://example.dev"
#else
#define kAPIEndpointHost @"http://www.example.com"
#endif
#define kAPIEndpointLatest [kAPIEndpointHost stringByAppendingString:@"/api/latest_content"]
#define kAPIEndpointMostPopular [kAPIEndpointHost stringByAppendingString:@"/api/most_popular"]
Obviamente esto no funciona ya que no puede basar una constante en el valor de otra de las constantes aparentemente.
¿Cuál es la forma "correcta" de hacer esto? ¿Tendría más sentido simplemente tener una clase adecuada con métodos de clase que devuelvan los valores de punto final correctos?
EDIT: Para que quede claro, las cadenas "último" y "mostPopular" que son basado en la cadena del host son lo que yo estoy teniendo más problemas con. Al compilador no le gusta la parte stringByAppendingString
de #defines.
no veo lo que está mal con esto, TBPH. –
El compilador se queja de la parte 'stringByAppendingString'. Supongo que no puedes # definir una constante basada en otra constante como esta. – markquezada
¿Cuál es el mensaje de error del compilador real? Acabo de usar el fragmento de código anterior y se compiló/ejecutó muy bien. –