美文网首页Swift从0开始
Swift 自定义Log(Debug — Release)

Swift 自定义Log(Debug — Release)

作者: 浮桥小麦 | 来源:发表于2016-09-29 18:34 被阅读54次
NO.1 先了解下 Debug 和 Release 的区别
  • Release是发行版本,比Debug版本有一些优化,文件比Debug文件小 Debug是调试版本,Debug和Release调用两个不同的底层库。
  • 一、"Debug是调试版本,包括的程序信息更多"
  • 二、只有DEBUG版的程序才能设置断点、单步执行、使用TRACE/ASSERT等调试输出语句。
  • 三、REALEASE不包含任何调试信息,所以体积小、运行速度快。
NO.2
  • 在Swift中我们普通打印的话,默认只会打印想要打印的内容不会像OC那样打印附加的一些信息
print(“我是帅哥吗?")
  • 系统只会打印:
Snip20160929_3.png

不会有其它信息,所以我们在调试的时候是不方面的,所以我们需要自己写一个打印方法,来显示一些必要的打印信息,方便我们平时调试程序

NO.3 直接上代码,写在 AppDelegate 中的一个全局函数
func JJLog<T>(messsage : T, file : String = #file, funcName : String = #function, lineNum : Int = #line) {
    let fileName = (file as NSString).lastPathComponent
    print("\(fileName):(\(lineNum))-\(messsage)")
}
  • 使用:
 JJLog("就是帅哥")
Snip20160929_5.png

这样就会显示是在哪个类,哪一行进行的打印

NO.4 最后我们还要设置在Release状态下不会出现这些打印
  • 按下面的操作,给Debug状态设置一个标记,这样系统会判断只在Debug状态才进行打印
Snip20160929_6.png
  • 在Build Settings 搜索 Swift flags 展开Debug 添加标记 并在我们的全局函数中加入判断
func JJLog<T>(messsage : T, file : String = #file, funcName : String = #function, lineNum : Int = #line) {
    
    #if DEBUG
    
    let fileName = (file as NSString).lastPathComponent
    
    print("\(fileName):(\(lineNum))-\(messsage)")
    
    #endif
}
  • 这样设置后,我们的调试打印,在Release情况下就不会再打印了
后记:Swift初学,感谢小码哥。。。

相关文章

网友评论

    本文标题:Swift 自定义Log(Debug — Release)

    本文链接:https://www.haomeiwen.com/subject/vwqlyttx.html