我在过去几个小时里一直在谷歌上搜索是否有办法用代码清除NSLog输出?
就像我们在c中有clrscr()
一样。因此,如果我们正在尝试打印我们最想要关注的内容并且有很多日志打印,那么我们可以将代码放在那里并保持我们的愿望登录以便于搜索。这可以通过在我的NSLog
行上放置断点而不是点击clear console
来完成。但问题是有没有办法以编程方式实现这个目标?
我发现堆栈溢出的问题很少,但我对this这样的答案不满意,我说我可以禁用发布模式的日志等。
或者我可以使用DLog,ALog或ULog作为要求,但我的问题不同......
任何人都可以帮助我吗?
提前致谢:)
答案 0 :(得分:9)
您可以使用条件断点来模拟它。在代码中定义这样的函数:
int clear_console()
{
NSLog(@"\n\n\n\n\n\n\n\n");
}
然后,当您要清除控制台时,只需在具有此条件的NSLog之前添加断点:
expr (int) clear_console()
使用Xcode 4.3.2和lldb进行测试。
上一个回答:
AFAIK,不,没有。
如果您还没有这样做,您可以创建自定义宏来格式化输出以突出显示您想要的内容。
定义这样的宏:
#define CLEAR(...) NSLog(@"\n\n\n\n\n\n") /* enough \n to "clear" the console */
#define WTF(...) CLEAR();NSLog(@"!!!!!!!!!!!!!!");NSLog(__VA_ARGS__)
#define TRACE(__message__) NSLog(@">>>>>>>>>>>>>>> %@ <<<<<<<<<<<<<<<<<<<", __message__)
然后:
WTF(@"This should't be here object: %@", theObject);
...
TRACE(@"Start Encoding");
...
它不是你想要的,但它几乎解决了这个问题。您最终会拥有自己的一组宏,并且可以在控制台输出中轻松扫描自定义前缀。