Registrando o método atual em Objective-C

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)