公司中不直接使用NSLog,而是利用宏定义自己的打印函数,将该打印函数写在项目的.pch文件中.调试的时候往往用到好多打印,但发布的时候确不需要.(一下是在公司中的一些处理)

一,固定写法:

#define  MYLog(...)  NSLog(__VA_ARGS__)

二,注意:

1,MYLog括号中的...是固定写法,表示可以接受任意多个参数.

2,NSLog括号中的__VA_ARGS__  也是固定写法,前后用了两个下划线

三,使用方式:

项目中Supporting files文件夹下有个 "工程名-Prefix.pch"文件,你可以在该文件下声明

#define  MYLog(...)  NSLog(__VA_ARGS__)

这样之后工程中的任何一个文件中都可以使用改自定的打印函数(也就是说可以在该.pch中放一些全局的东西)

四,好处:

这样使用的好处就是,项目调试期间,我们可能会用到好多MYLog()函数打印.

如果不需要时,只需将.pch中该宏修改为:(这样就相当于MYLog()代表的是注释了)

#define  MYLog(...)  //NSLog(__VA_ARGS__)

五,修改:(这样做还不够智能,每次调试的时候需要用到打印,发布的时候不需要打印还要手动修改一下)

其实系统提供了一个宏  DEBUG 表示在调试状态下

因为上述代码可以优化为:    (下述代码是公司常用代码)

1
2
3
4
5
#ifdef DEBUG  //调试阶段
#define MYLog(...)  NSLog(__VA_ARGS__)
#else //发布阶段
#define MYLog(...)
#endif

最新文章

  1. C#_技巧:.net下C++调用C#的dll
  2. Azure PowerShell (11) 使用自定义虚拟机镜像模板,创建Azure虚拟机并绑定公网IP(VIP)和内网IP(DIP)
  3. html(单纯html标签)
  4. 用js写的比较简单3D旋转效果
  5. Storm和JStorm(阿里的流处理框架)
  6. Server-U与IIS端口占用问题解决
  7. cocos2dx对于强大的RichText控制
  8. PHP GD库生成图片自动换行函数,自动分页函数
  9. Java中的网络支持InetAddress&URL
  10. python复习1
  11. 查看指定库对应GCC版本
  12. ipc基础
  13. 解决idea创建Maven项目卡在running tmp archetypexxxtmp
  14. c#的Boolean.Parse用法
  15. shell编程小结
  16. CSS3基础知识核心动画(二)
  17. http协议--文章一
  18. UC 优视发布“UC+”开放平台
  19. calibre,完成对各种格式的电子书籍的管理和格式转换及同步
  20. 网络编程基础----并发编程 ---守护进程----同步锁 lock-----IPC机制----生产者消费者模型

热门文章

  1. 「深入理解计算系统」从Hello World开始
  2. 面向对象程序设计-C++_课时19const_课时20不可修改的
  3. ubuntu13.04安装SenchaArchitect-2.2无法启动的问题
  4. [Java 8 Lambda] java.util.stream 简单介绍
  5. [置顶] block一点也不神秘————如何利用block进行回调
  6. Android布局绘制常见小问题
  7. socket(套接字)
  8. C++中的栈和队列
  9. Kafka主要参数详解
  10. 经常会用到的js函数