美文网首页iOS Developer
OC和Swift自定义Log打印输出

OC和Swift自定义Log打印输出

作者: 三十六_ | 来源:发表于2017-05-05 22:25 被阅读112次

    导语
    在开发中经常会打印出一些内容来进行调试,但是这些打印内容会消耗性能,所以我们需要在 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。
    该函数使用了泛型,可以使我们传递任意类型的数据进去

    相关文章

      网友评论

        本文标题:OC和Swift自定义Log打印输出

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