Swift 中调试状态下打印日志

Posted 村里竹竿2016

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Swift 中调试状态下打印日志相关的知识,希望对你有一定的参考价值。

首先我们应该知道Swift中真个程序的入口就是在AppDelegate.swift中。所以在打印日志在 AppDelegate.swift中是这样的

import UIKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?


    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        
        DLLog("你好")
        
        return true
    }

}
// 把要打印的日志写在和AppDelegate同一个等级的方法中,即不从属于AppDelegate这个类,这样在真个项目中才能使用这个打印日志,因为这就是程序的入口,
//这里的T表示不指定message参数类型
func DLLog<T>(message: T, fileName: String = __FILE__, funcName: String = __FUNCTION__, lineNum : Int = __LINE__) {
    
    #if DEBUG
        /**
         * 此处还要在项目的build settings中搜索swift flags,找到 Other Swift Flags 找到Debug
         * 添加 -D DEBUG,即可。
         */
         // 1.对文件进行处理
        let file = (fileName as NSString).lastPathComponent
        // 2.打印内容
        print("[\\(file)][\\(funcName)](\\(lineNum))\\(message)")
        
    #endif
    
}

打印的类型是:[AppDelegate.swift][application(_:didFinishLaunchingWithOptions:)](19)你好 

分别是文件 方法名 行号  内容

其次,还应该处理的一点是,如图所示(其实在代码里已经说明了)

这样完整的调试状态下的log日志就完成了

以上是关于Swift 中调试状态下打印日志的主要内容,如果未能解决你的问题,请参考以下文章

iOS高效调试

argparse 代码片段只打印部分日志

每次调试打印日志都很头痛

swift 仅在调试模式下打印。不在发布模式。

react native ios在release模式下打印js console调试日志

Swift新async/await并发中利用Task防止指定代码片段执行的数据竞争(Data Race)问题