Мне нравится использовать этот формат для отладки.
NSLog( @"<%p %@:(%d)> %@", self, [[NSString stringWithUTF8String:__FILE__] lastPathComponent], __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__] )
Конечно, вы захотите обернуть это в свой собственный метод или функцию для простоты использования. Я использую препроцессор, а также включаю его только для собственного использования и специальных сборок, которые отправляю бета-тестерам. Кстати, это скопировано из моего ответа на этот вопрос.
#define DEBUG_MODE
#ifdef DEBUG_MODE
#define DebugLog( s, ... ) NSLog( @"<%p %@:(%d)> %@", self, [[NSString stringWithUTF8String:__FILE__] lastPathComponent], __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__] )
#else
#define DebugLog( s, ... )
#endif
Это заставляет DebugLog
действовать так же, как NSLog
, но отображает имя файла и номер строки, где он был вызван:
2009-05-23 17:23:40.920 myproject[92523:10b] <AppCon.m:(8)> My debug message...