texas spanish significa salvage rebuilt que meaning florida clean branded objective-c c ios nslog

objective-c - spanish - salvage title meaning



Clean NSLog-Sin marca de tiempo y nombre del programa (1)

Use este código (note la parte ## ):

#define NSLog(FORMAT, ...) fprintf(stderr, "%s/n", [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]);

Casi termino un NSLog limpio con este código:

#define NSLog(FORMAT, ...) printf("%s/n", [[NSString stringWithFormat:FORMAT, __VA_ARGS__] UTF8String]);

Esto funciona bien si hago esto:

NSLog(@"Show %@ message", @"this");

Pero, fallará si lo uso

NSLog(@"One argument");

porque __VA_ARGS__ no es nada, entonces produce

printf("%s/n", [[NSString stringWithFormat:@"One argument",] UTF8String]);

Entonces, el problema es la coma. Debido a que esto es macro, __VA_ARGS__ no es nada. Entonces no puedo hacer cosas como __VA_ARGS__==nil porque producirá ==nil y fallará.

La pregunta es simple: ¿Qué hacer cuando __VA_ARGS__ no es nada? O solo usa coma cuando tengas más argumentos.