swift3中自定义打印log

不知不觉swift已经3岁了,期间也就在15年底和16年上半年用2.0和2.2在项目中进行过混编,也是一把泪吧。后来就放弃混编了,太不稳定了。现在决定再次开始在项目中进行swift和OC混编,也算是摸着石头过河吧!

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

此代码是网上下的一个demo里的,我自己稍微改造了下,调用方法的输出会跟OC一样用 '[ ]',如果你不习惯的话自己改动一下就好了。但是我放到自己的项目中发现并不会打印信息,如果去掉其中的 'if' 判断就可以正常输出打印,后来发现swift中并没有识别这个 'debug'

Snip20170801_2.png

经过上面的设置后就可以正常输出打印了

    // 或者不想配置可以使用下面这段代码
    // 这是通过函数判断编译的优化选项
    // 但是不够直观而且没有官方的文档,所以不建议使用。
    if _isDebugAssertConfiguration() {
        
        let fileName = (file as NSString).lastPathComponent
        
        print("\(fileName):(\(lineNum))-\(message)")
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容