Recentemente, vi macros que se parecem com isto:
#define DLog(msg, ...) do {
NSString *dLogString = [NSString stringWithFormat:@"[%@ %@]: %@", NSStringFromClass[self class], NSStringFromSelector(_cmd), msg];
NSLog(@"%@", __VA_ARGS__);
} while(0)
Todas essas substituições podem ser substituídas por __PRETTY_FUNCTION__
, que também funciona em contextos C e C ++.
#define DLog(msg, ...) do {
NSString *dLogString = [NSString stringWithFormat:@"%s: %@", __PRETTY_FUNCTION__, msg];
NSLog(@"%@", __VA_ARGS__);
} while (0)