Я хочу включить NSLog, когда я нахожусь в отладке, и отключить его в противном случае. Очень простая вещь:
#ifdef DEBUG
NSLog(@"My log");
#endif
Но все это #ifdef
и #endif
скучно ... :( Поэтому я попробую другое: (.pch - хорошее место, чтобы поставить это)
#ifdef DEBUG
# define NSLog(text) NSLog(text);
#else
# define NSLog(text)
#endif
Это работает очень хорошо (не рекурсивно). Но проблема в том, что NSLog имеет бесконечные аргументы.
void NSLog(NSString *format, ...)
Как мне решить эту проблему для работы в режиме препроцессора?
- Правка -
Этот код делает ваш NSLog лучше:
#ifdef DEBUG
#define NSLog(FORMAT, ...) fprintf(stderr,"%s\n", [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]);
#else
#define NSLog(...)
#endif