La funzione NSLog presente nel Foundation Kit è molto comoda in fase di debug di un’applicazione. NSLog non fa altro che stampare a console la stringa passata come argomento. Possiamo rendere NSLog “parlante” aggiungendo delle informazioni interessanti, come il nome del metodo e il numero di linea, ogni volta che viene chiamata.
Per farlo è necessario definire una propria funzione “MYLog” in un header comune o nel file .pch in questo modo:
1 | # define MYLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__); |
__PRETTY_FUNCTION__ e __LINE__ sono due macro che hanno proprio lo scopo di visualizzare il nome del metodo e la linea. Ci sono anche altre macro che si posso utilizzare ad ognuno la sua scelta.
Se invece vogliamo fare in modo che queste informazioni siano stampate solo in DEBUG basta aggiungere un if in questo modo:
1 2 3 4 5 | #ifdef DEBUG # define MYLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__); #else # define MYLog(...) #endif |
Niente di più semplice e funzionale.