为了账号安全,请及时绑定邮箱和手机立即绑定

如何打印出方法名和行号,并有条件禁用NSlog?

如何打印出方法名和行号,并有条件禁用NSlog?

慕村225694 2019-07-22 10:20:08
如何打印出方法名和行号,并有条件禁用NSlog?我正在做一个关于Xcode调试的演示,希望获得更多关于如何高效使用NSLog的信息。特别是,我有两个问题:是否有一种方法可以轻松地记录当前方法的名称/行号?在编译发布代码之前,是否有一种方法可以轻松地“禁用”所有NSLogs?
查看完整描述

3 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

下面是关于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


查看完整回答
反对 回复 2019-07-22
?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

我已经DLogALog从上面,加上ULog这会引发一个UIAlertView留言。

总结如下:

  • DLog

    输出会像

    NSLog

    只有在设置了调试变量时
  • ALog

    总是输出类似

    NSLog

  • ULog

    将显示

    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

如下所示:

https://img1.sycdn.imooc.com//5d351d7b0001a9bc02770198.jpg


查看完整回答
反对 回复 2019-07-22
?
大话西游666

TA贡献1817条经验 获得超14个赞

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

而且没有出现日志输出,但是我不知道这是否有任何副作用。


查看完整回答
反对 回复 2019-07-22
  • 3 回答
  • 0 关注
  • 485 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信