-
缥缈止盈
下面是关于NSLog的一些有用的宏,我经常使用:#ifdef DEBUG# define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)#else# define DLog(...)#endif// ALog always displays output regardless of the DEBUG setting#define ALog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)DLog宏仅用于在设置调试变量时输出(项目的C标志中用于调试确认的-DDEBUG)。Alog将始终输出文本(如常规NSlog)。输出(例如Alog(@“HelloWorld”)如下所示:-[LibraryController awakeFromNib] [Line 364] Hello world
-
凤凰求蛊
我已经DLog和ALog从上面,加上ULog这会引发一个UIAlertView留言。总结如下:DLog输出会像NSLog只有在设置了调试变量时ALog总是输出类似NSLogULog将显示UIAlertView只有在设置了调试变量时#ifdef DEBUG
# define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
# define DLog(...)
#endif
#define ALog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
#ifdef DEBUG
# define ULog(fmt, ...) { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:[NSString stringWithFormat:@"%s\n [Line %d] ", __PRETTY_FUNCTION__, __LINE__] message:[NSString stringWithFormat:fmt, ##__VA_ARGS__] delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil]; [alert show]; }
#else
# define ULog(...)
#endif如下所示:
-
大话西游666
NSLog(@"%s %d %s %s", __FILE__, __LINE__, __PRETTY_FUNCTION__, __FUNCTION__);输出文件名、行号和函数名:/proj/cocoa/cdcli/cdcli.m 121 managedObjectContext managedObjectContext__FUNCTION__在C+中显示损坏的名称__PRETTY_FUNCTION__显示了很好的功能名称,在可可,他们看起来是一样的。我不知道禁用NSlog的正确方法是什么,我做到了:#define NSLog而且没有出现日志输出,但是我不知道这是否有任何副作用。