C macro que crea una variable NSString con el nombre de la variable como el contenido de la cadena

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.)