我目前正在创建一个演示绘图和图像编辑应用程序,只是为了练习。已经创建了一些自定义视图并使用 draw rect 绘制了我的绘图。事情是我一直在写 NSLogs 来经常检查我的点和其他对象的内容,我不会删除其中的很多,因为我一次又一次地需要它们。但是观察到日志正在消耗处理时间并使某些绘图过程变得滞后。
我的问题是,xcode 中是否有任何方法可以在启动应用程序时立即删除所有 NSlog,并在测试时再次添加它们。
做这样的事情...
点击 Command
+ Shift
+F
选择Replace
并替换NSLog
为//NSLog
不是很好的解决方案,但仍然有效!:)
通过使用如下宏定义自定义 NSLog,找到了另一种好方法: MYLog(@"Count of student array-->%d",[studentArray count]);
在您的app-prefix.h文件中,该文件包含项目中所有文件的公共标头,以这种方式定义“MYLog”宏:-
#ifdef 调试
#define MYLog(f, ...) NSLog(@"<%@:(%d)> %@",[[NSString stringWithUTF8String: _FILE _] lastPathComponent], _LINE _, [NSString stringWithFormat:(f), # # _VA_ARGS _])
#别的
#define MYLog(f, ...)
#万一
因此,当您需要测试时,将项目置于调试模式,当您需要在没有日志的情况下运行时,将项目置于发布模式。简单.. ps FILE AND LINE 是由预处理器执行的宏,用于打印存在日志的文件名和行号。试试看..
嗨,我知道的一种方法是使用 xcode 中的查找和替换选项。
IE。例如,您需要删除您在整个项目中编写的所有 NSLog。在整个项目中
查找NSLog 关键字(cmd+shift+F),然后将其替换为//NSLog。这将注释掉您编写的所有 NSLog。
当您需要取消注释日志时,只需执行相反的操作。即在整个项目中
查找//NSLog 关键字(cmd+shift+F),然后将其替换为NSLog。这将取消注释把你写的所有 NSLogs 都拿出来,然后它们再次打印在控制台中。您也可以通过仅使用 (cmd+F) 而不是 (cmd+shift+F) 来对特定文件执行此操作。但不确定 xcode 是否确实有适当的方法来执行此操作。