iOS自定义的Debug打印(文件名+行数)位置

一直以来Xcode的默认Debug只打印项目名称和你想打印的值,当项目很大的时候,看到控制台打印的内容时就很难知道打印的信息是属于哪个文件的哪一行(位置),这样找问题就很不方便,后来我在网上找了一些这方面的资料,于是我找到了“KZLinkedConsole”第三方插件,下载地址:https://github.com/krzysztofzablocki/KZLinkedConsole;

由于安装第三方插件有可能导致Xcode运行会卡顿,所以我就从“KZLinkedConsole”了解了下实现的原理,自己也封装了一个“DLogName_Line”

Demo下载链接 : https://files.cnblogs.com/files/qwer-BHS/DLogFileNameLine.zip

 

“DLogGlobal.h”

这是一个全局文件,只要在项目的".pch"引入这个文件就可以了

把以往的NSLog打印 改为 DLog 就可以使用了

//引用这个头文件就可以了

 

#ifndef DLogGlobal_h

#define DLogGlobal_h

#import "NSObject+DLClass.h"

 

//打印带文件名:行数

 

#define __DFILE__  ([[NSString stringWithFormat:@"%s",__FILE__] nsLogFileName]) //文件名

 

#define DLog(format, args...) (NSLog(@"[%@:%d]: " format "\n", __DFILE__, __LINE__, ## args))

 

#endif /* DLogGlobal_h */

 

 “NSObject+DLClass.h”

 

 

#import <Foundation/Foundation.h>

 

@interface NSString (DLClass)

//打印时的文件名

- (NSString *)nsLogFileName;

@end

 

NSObject+DLClass.m

 

#import "NSObject+DLClass.h"

 

@implementation NSString (DLClass)

- (NSString *)nsLogFileName

{

    NSString *file = [[NSString alloc]initWithString:self];

    NSRange range = [file rangeOfString:@"/" options:NSBackwardsSearch];

    if (range.location != NSNotFound) {

        file = [file substringFromIndex:range.location+1];

    }

    return file;

}

 

@end

 

写的不好,大神略过,有帮助,荣幸

posted @ 2016-04-14 09:17  望月Jarvis  阅读(1337)  评论(0)    收藏  举报