[Tech] Lignes de log custom (alias de NSLog) #iOS #Objective-C

// MFLog
#define MFDEBUG
#ifdef MFDEBUG
#define MFLog(x,...) NSLog(@"%s - %@", __FUNCTION__, [NSString stringWithFormat:(x), ##__VA_ARGS__])
#else
#define MFLog(x,...)
#endif [...]
MFLog(@"Hello GoodBarbers :) %d", i);
[...] 
Anecdote : notre équipe de développement a pris l'habitude de systématiquement préfixer les noms de classes et autres méthodes utilitaires par GB (pour GoodBarber évidemment). Mais dans le cas de la commande de log custom, je l'avais mise en place bien avant le début du projet, et l'avais préfixé de mes initiales. Et c'est resté… :)
// MFImportantLog
// MEMLog

Voici la défintion de l'alias MEMLog qui assure une mise en forme correcte dans la sortie de la console :
#define MEMLog(x, ...) NSLog(@"-[%@ %@] - %@", [[[[NSString stringWithFormat:@"%@", self] componentsSeparatedByString:@":"] objectAtIndex:0] stringByReplacingOccurrencesOfString:@"<" withString:@""], [[[[NSString stringWithFormat:@"%s", __FUNCTION__] componentsSeparatedByString:@" "] objectAtIndex:1] stringByReplacingOccurrencesOfString:@"]" withString:@""], [NSString stringWithFormat:(x), ##__VA_ARGS__])
Design

