A pesar de que esto no es una buena práctica de encoding, quiero una macro que funcione como la siguiente:
CREATE_STRING(fooBar)
Y debería crear el siguiente código:
NSString *fooBar = @"fooBar";
Mi macro se ve así:
#define CREATE_STRING(varName) NSString *varName = @"varName";
Pero ahora obtengo lo siguiente
NSString *fooBar = @"varName";
Parece ser un problema fácil de resolver y ya he revisado la documentation de IBM, pero no puedo encontrar el varName
en la cadena.
asi es como se hace
#define CREATE_STRING(varName) NSString *varName = @"" #varName
Aprovecha el hecho de que dos constantes de cadena una tras otra se concatenan por el comstackdor.
Utilizar
#define CREATE_STRING(varName) NSString *varName = @#varName
en lugar. (también tenga en count que no necesita el punto y coma final para poder "llamar" a su macro como una function similar a C.)