15
Continúa de la última pregunta aquí: Log method name in Obj-C. Me preguntaba si también hay una forma de imprimir el nombre de la variable. Por ejemplo:Imprima el nombre de la variable objetivo-C
NSString *name = "vodkhang";
NCLog(@"%@", name);
y espero que la salida debe ser:
name: vodkhang
Sólo para resumir el post anterior, en la actualidad, puedo imprimir el nombre de la clase, nombre del método y el número de línea cuando me llamo
NCLog(@"Hello World");
<ApplicationDelegate:applicationDidFinishLaunching:10>Hello world
con
#define NCLog(s, ...) NSLog(@"<%@:%d> %@", __FUNCTION__, __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__])
El principio general es que cuando coloca un '#' delante de un argumento dentro del cuerpo de un '# define', el preprocesador lo reemplaza con una cadena C de la expresión * exact * pasada a la macro. Cuando pasa un nombre de variable, obtendrá ese nombre. Si pasa una expresión, reproducirá la expresión en su totalidad, no el resultado evaluado. –
@Quinn: lo tengo. Gracias por eso – vodkhang