在开发过程中,我们常常须要用到NSLog输出一些信息,甚至有的开发过程。必须在控制台查看输出,有经验的程序猿通过控制台输出就能知道整个数据交互的一个流程。

可是一个公布的程序,里面带有太多的NSLog输出,肯定对于App性能有所影响,这时候我们能够使用一个宏定义来处理,在开发的时候使用DEBUG模式,在公布的时候使用RELEASE模式。这样,公布的App就不会在程序内部做大量的NSLog输出了。

简单的代码例如以下,

1
2
3
4
#if defined(DEBUG)||defined(_DEBUG)
    NSLog(@"測试代码");
    NSLog(@"Test Coding");
#endif

上面的#if #endif宏定义的意思就是假设定义了DEBUG,那么就使用NSLog输出;否则这段代码直接忽略。有人会疑问这个DEBUG和_DEBUG来自哪里。这个事实上不用操心,这个来自于Xcode的默认设置,我们能够取消DEBUG模式,开启RELEASE公布模式。例如以下截图所看到的,

选择Product->Scheme->Edit Scheme。

下图能够选择Debug和Release两种模式。

这里我选择了Release,那么则默认未定义Debug。则上面代码中#if...#endif之间的输出NSLog不会运行。

这样就在公布程序的时候。节省了一些硬件设备的资源。

最新文章

  1. css屏蔽元素的鼠标事件pointer-events
  2. 天朝专用- 配置pypi镜像
  3. 第三百二十七天 how can I 坚持
  4. Swift属性
  5. AFNetwork学习(二)——GET/POST请求
  6. js函数对象
  7. SuperMap iObject入门开发系列七管线横断面分析
  8. Docker镜像配置redis集群
  9. linux如何查看所有的用户(user)、用户组(group)、密码(password/passwd)
  10. C#里XML(JSON)序列化时,自动隐藏值为Null的成员的输出
  11. addEventListener()方法
  12. python字符串常用方法
  13. js将滚动条滚动到指定位置的方法
  14. Linux 配置文件管理
  15. 取Mac地址
  16. Qt编译目录下exe文件执行报错问题的解决办法
  17. 《精通Ext JS 》
  18. JavaScrip——练习(做悬浮框进一步:悬浮窗后缀悬浮窗【感觉这种方法比较麻烦】)
  19. 关于Unity中的定时器和委托
  20. ELK基础学习

热门文章

  1. java根据汉字获取全拼和首字母
  2. 浅析PHP中cookie与session技术
  3. springMVC、mybatis实现的登录页面(maven)
  4. SpringBoot(十) 异步任务,定时任务和邮件任务
  5. Core Java(七)
  6. Core Java(六)
  7. js数组定义、属性及方法(push/pop/unshfit/shfit/reverse/sort/slice/splice/indexOf/lastIndexOf)
  8. 关于Android Studio更新后一直Refreshing的解决办法!
  9. AVL树,红黑树,B树,B+树,Trie树都分别应用在哪些现实场景中?
  10. 蓝桥杯_left and throw