iOS Developer

swift3中自定义打印log

2017-08-01  本文已影响58人  优米诺

不知不觉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)")
    }
上一篇下一篇

猜你喜欢

热点阅读