Apple开发_自定义打印

1、为了全文通用,选择在PCH文件中写:

#define CHLog(...) printf("[文件:%s] 第%d行: %s\n",/* 文件名 */[[[NSString stringWithUTF8String:__FILE__] substringWithRange:NSMakeRange([[NSString stringWithUTF8String:__FILE__] rangeOfString:@"/" options:NSBackwardsSearch].location + 1, [[NSString stringWithUTF8String:__FILE__] rangeOfString:@"." options:NSBackwardsSearch].location - [[NSString stringWithUTF8String:__FILE__] rangeOfString:@"/" options:NSBackwardsSearch].location - 1)] UTF8String] ,/* 行号 */__LINE__, /* 动态参数 */[[NSString stringWithFormat:__VA_ARGS__] UTF8String]);
  • 使用方法与系统原有的一致。
  • 输出格式:[文件:TCPTool1] 第868行: 要打印的信息

2、[升级版调试、发布打印]

3、Swift版本

  • 3.1 定义 全局函数

    • 添加#if DEBUG #endif 判断。
    // MARK: - 全局函数
    func GCLog<T>(_ message: T, file: String = #file, func_name: String = #function, line_num: Int = #line) {
        #if DEBUG
        
        // 第169行:要打印的信息
        print("第\(line_num)行:\(message)")
        
        //var file_name = (file as NSString).lastPathComponent;
        //file_name = file_name.components(separatedBy: ".").first ?? "文件名"
        
        // ViewController 第169行:要打印的信息
        //print("\(file_name) 第\(line_num)行:\(message)")
        
        // ViewController viewDidLoad() 第169行:要打印的信息
        //print("\(file_name) \(func_name) 第\(line_num)行:\(message)")
        
        #endif
    }
    
  • 3.2 调整在哪一个状态下打印

    • 上面 #if DEBUG #endif 中的 DEBUG来自这里。
posted @ 2018-06-11 12:07  CH520  阅读(273)  评论(0)    收藏  举报