不知不覺(jué)swift已經(jīng)3歲了赫蛇,期間也就在15年底和16年上半年用2.0和2.2在項(xiàng)目中進(jìn)行過(guò)混編,也是一把淚吧。后來(lái)就放棄混編了霎挟,太不穩(wěn)定了。現(xiàn)在決定再次開(kāi)始在項(xiàng)目中進(jìn)行swift和OC混編麻掸,也算是摸著石頭過(guò)河吧酥夭!
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
}
此代碼是網(wǎng)上下的一個(gè)demo里的,我自己稍微改造了下脊奋,調(diào)用方法的輸出會(huì)跟OC一樣用 '[ ]'熬北,如果你不習(xí)慣的話自己改動(dòng)一下就好了。但是我放到自己的項(xiàng)目中發(fā)現(xiàn)并不會(huì)打印信息诚隙,如果去掉其中的 'if' 判斷就可以正常輸出打印讶隐,后來(lái)發(fā)現(xiàn)swift中并沒(méi)有識(shí)別這個(gè) 'debug'
經(jīng)過(guò)上面的設(shè)置后就可以正常輸出打印了
// 或者不想配置可以使用下面這段代碼
// 這是通過(guò)函數(shù)判斷編譯的優(yōu)化選項(xiàng)
// 但是不夠直觀而且沒(méi)有官方的文檔,所以不建議使用久又。
if _isDebugAssertConfiguration() {
let fileName = (file as NSString).lastPathComponent
print("\(fileName):(\(lineNum))-\(message)")
}