OC和Swift自定义Log打印输出

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

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

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

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

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


添加标记

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

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

func JYHLog<T>(_ 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。
该函数使用了泛型,可以使我们传递任意类型的数据进去

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容