关闭

Swift中如何实现自定义Debug模式下打印Log

标签: swift调试Debugnslog
1439人阅读 评论(0) 收藏 举报
分类:

       打印log是开发调试过程中是必不可少的一步,但是上线之后这中log就没有什么意义,而且很消耗性能,如何在调试时候打印不调试就不打印呢?objective-c时代我们可以使用宏定义来设置工程debug模式下打印log,release模式下不打印log,但是过度到swift之后,我们发现swift的版本特性,不具有宏这种东西,所以也就不那么容易实现类似OC中的debug模式才能打印log的功能,但是还是可以操作的,方法如下:

       首先我们知道,swift语言的特性并没有宏这种概念,所以我们可以通过定义全局函数的形式来让所有的类都能调用,下边是我写好的一个函数用来描述打印log的信息:

        func PrintLog<N>(message:N,fileName:String = #file,methodName:String = #function,lineNumber:Int = #line){
                 #if DebugType
              print("\(fileName as NSString)\n方法:\(methodName)\n行号:\(lineNumber)\n打印信息\(message)");
                #endif
       }

        大家会发现,   #if DebugType以及#endif还是宏,确实,但是这个宏和oc中的宏是两回事了,因为这个是自定义的宏,好了,重点来了,怎么去定义这个自定义的宏呢?

 方法是:点击工程,然后target 然后 build setting 然后搜索custom 这个时候会有个custom flag选项,下边就有个选项,如下图:

然后在Debug选项中输入-加大写的D 后边跟你自己定义的宏的名字,这样,就完成了自己定义的宏,通过更改release模式我们发现,已经完成了这个功能,只在debuge模式下调用这个打印函数,release下不会调用,希望能对你有所帮助


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:75141次
    • 积分:1439
    • 等级:
    • 排名:千里之外
    • 原创:71篇
    • 转载:1篇
    • 译文:0篇
    • 评论:8条
    最新评论