Choisir une constante en fonction d'une autre
muqaddar
Administrateur
J'adore ce titre.
Bon, je vous explique.
J'ai 2 constantes d'URL :
Je voudrais que ces constantes soient remplacées dans mon code (à plusieurs endroits) par une variable ou une fonction ou j'en sais rien... qui irait donc chercher la bonne constante en fonction du contexte.
Le contexte n'est pas simulateur ou device (chose qu'on peut gérer avec une macro) car je peux avoir envie de tester sur le serveur de prod même sur le simulateur.
Donc en gros il faudrait dans prefix.pch que je mette :
et qu'en fonction de ça, ça aille me chercher la bonne constante, par exemple :
et que ceci soit accessible dans toutes les classes... alors macro ou autre ?
Bon, je vous explique.
J'ai 2 constantes d'URL :
#define kURL_LOCAL @"http://0.0.0.0:3000"<br />#define kURL_PROD @"http://www.vinocella.net"
Je voudrais que ces constantes soient remplacées dans mon code (à plusieurs endroits) par une variable ou une fonction ou j'en sais rien... qui irait donc chercher la bonne constante en fonction du contexte.
Le contexte n'est pas simulateur ou device (chose qu'on peut gérer avec une macro) car je peux avoir envie de tester sur le serveur de prod même sur le simulateur.
Donc en gros il faudrait dans prefix.pch que je mette :
#define kUSE_PROD_URL FALSE ou TRUE
et qu'en fonction de ça, ça aille me chercher la bonne constante, par exemple :
if (kUSE_URL_PROD == FALSE) kURL = kURL_LOCAL;
et que ceci soit accessible dans toutes les classes... alors macro ou autre ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Je ne savais pas qu'on pouvait définir une constante avec une autre...
Problème réglé. :P
Par contre, je ne sais pas comment définir LOCAL_TEST pour le compilateur (je ne l'ai jamais fait sous XCode), mais ça se trouve a priori dans les options de compil de la cible.
Arf grillé par Céroce.
Mais en fait je ne comprends pas ce que tu définis par "en fonction d'un contexte", ce contexte serait à définir comment ? au runtime ?
Le contexte, c'est moi !
Envie de tester en local ou en prod à certains moments (et rien à voir avec les modes debug, beta, ou release).
Et donc avec un #if ensuite pour faire [tt]#define kURL kURL_LOCAL[/tt] dans un cas et [tt]#define kURL kURL_PROD[/tt] dans l'autre et ça roule ?
Mais ma solution au post 2 aussi... et elle prends moins de lignes...
Mais dans un soucis d'avoir la valeur 0 ou 1 à changer ici, contre 5 caractères dans ma solution, j'adopte celle-ci. :P