OC和Swift自定义Log打印输出

导语
在开发中经常会打印出一些内容来进行调试,但是这些打印内容会消耗性能,所以我们需要在 Release (发布)的时候取消这些打印,而在开发调试中将这些内容展示出来。

Objective-C中有宏定义,我们可以在预编译文件中写入以下代码:

#ifdef DEBUG
#define JYHLog(...) NSLog(__VA_ARGS__)
#else 
#define JYHLog(...)
#endif

这样就可以在开发时使用JYHLog(@"Something")来打印内容,而在发布的时候这些输出代码会被替换为空,从而减少了性能消耗。

而在Swift中,没有宏定义这种东西,所以我们要自己在Xcode中加入:


OC和Swift自定义Log打印输出_第1张图片
添加标记

利用Swift全局函数的功能:将函数定义在项目中任意一个类文件的class外面,就可以在项目中的任何地方均可以调用这个方法.

我们可以在AppDelegate文件中添加以下代码:

func JYHLog(_ message : T, file : String = #file, funcName : String = #function, lineNum : Int = #line) {
    
    #if DEBUG
    
    let fileName = (file as NSString).lastPathComponent
    print("\(fileName):(\(lineNum))-\(message)")
    
    #endif
}

可以自行更改里面输出的内容,代码中的DEBUG就是我们之前在XCode中添加的swift flag。
该函数使用了泛型,可以使我们传递任意类型的数据进去

你可能感兴趣的:(OC和Swift自定义Log打印输出)