tengo una macro preprocesador se define en la configuración de generaciónpreprocesador valor de la macro a la cadena de Objective-C literal
FOO=BAR
Ese valor Quiero dar masajes en una cadena literal Objective-C que se puede pasar a un método. La siguiente #define no funciona, pero debe demostrar lo que estoy tratando de lograr:
#define FOOLITERAL @"FOO" //want FOOLITERAL to have the value of @"BAR"
myMethodThatTakesAnNSString(FOOLITERAL);
espero que sólo estoy perdiendo lo obvio de alguna manera, pero me parece que no puede encontrar el vudú preprocesador derecho a conseguir lo Necesito.
Eso lo hizo. Probé la indirección doble, pero también tenía el valor "@" como macro y eso parece confundirlo. Una pequeña diferencia es que la primera línea no representa mi caso en el que no recupera la configuración de acumulación #define FOO FOOVAL #define STRINGIZE (x) #x #define STRINGIZE2 (x) STRINGIZE (x) #define FOOLITERAL @ STRINGIZE2 (FOOVAL) es lo que realmente funciona para mí. Pero tu respuesta me llevó allí. – vagrant
Hola @vagrant. ¿Esta solución aún funciona para usted con LLVM? Estoy tratando de hacer que esto funcione, pero el valor real de FOO como se define en mis macros de preprocesador de configuración de compilación nunca aparece. ¿Podría actualizar su pregunta con la solución que más le convenga?Aclamaciones. – epologee
¿Por qué no simplemente '#define Helper (STR) @ # STR'? – tadeuzagallo